比如 2009-11-24 06:00:00.000 和 345600(秒)相加 大于 当前时间为条件 谢谢
解决方案 »
- SQL SERVER2005无法连接到数据库引擎服务器类型
- 如何去掉重复的?
- SQL2000查询数据问题
- sql2008邮件服务器设置
- 请求sql大神们帮帮我啊
- 我使用邹建老大的mssql导出为excel文件 昨天可以导出来,为什么今天无论如何都不可以了呢?
- 行列转换中,相同ID与KIND的时候,NUM值相加的问题怎么解决呢,dawugui以及兄弟们,别贴网上的行列转换的代码了,行不,看的我头晕,而且也解决不了相加的效果?
- 困惑很久的 SQL 查询树的层次路径问题
- Access 数据查询结果的合并问题
- 怎么在命令模式把把數據導入SQL Server.
- 如何让数据库忽略默认值,并且其他值不得重复。
- 求一个UPDATE
select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:174. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回 105. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五6. day(), month(),year() --可以与datepart对照一下select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)select datename(dw,'2004-10-15')select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')
函数参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
------------------------------------------------------
2009-11-28 06:00:00.000(所影响的行数为 1 行)
**/
select * from tb where 时间>dateadd(ss,-345600,getdate())
dateadd(ss,345600,时间)>getdate()使用不了索引
时间>dateadd(ss,-345600,getdate())会使用索引
引用 18 楼 itliyi 的回复:
引用 17 楼 yang_ 的回复:这里有个性能问题,最好写成 SQL codeselect*from tbwhere 时间>dateadd(ss,-345600,getdate())为什么
时间是字段,有可能有索引
dateadd(ss,345600,时间)>getdate()使用不了索引
时间>dateadd(ss,-345600,getdate())会使用索引
这也有区别 呵呵 改过来