sqlserver日期计算的问题

DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 请问这句是什么意思呢?说得详细点好吗,,还有dd与DATEDIFF(dd,0,getdate()),与0又是什么意思呢?我是菜鸟,麻烦说得详细点谢谢

DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)的意思是返回当前日期
dd为日期分量代表day,还有其它的如month,year等
dateadd 为计算某个日期之前或之後多少个日期分量的时间,如计算今天之前10天的时间为
dateadd(dd,'2012-10-26',-10),之後10天日期为dateadd(dd,'2012-10-26',10)
datediff 计算两个日期之前日期分量的个数,如计算两个日期之间的天数:datediff(dd,'2012-9-10','2012-9-11')
此处的0代表'1900-1-1'
整个表达式相当於DATEADD(dd, DATEDIFF(dd,'1900-1-1',getdate()), '1900-1-1')
即先计算当臆系统时间与1900-1-1之间的天数,再计算1900-1-1加上这个天数的日期。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-02
DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)的意思是返回当前日期
dd为日期分量代表day,还有其它的如month,year等
dateadd 为计算某个日期之前或之後多少个日期分量的时间,如计算今天之前10天的时间为
dateadd(dd,'2012-10-26',-10),之後10天日期为dateadd(dd,'2012-10-26',10)
datediff 计算两个日期之前日期分量的个数,如计算两个日期之间的天数:datediff(dd,'2012-9-10','2012-9-11')
此处的0代表'1900-1-1'
整个表达式相当於DATEADD(dd, DATEDIFF(dd,'1900-1-1',getdate()), '1900-1-1')
即先计算当臆系统时间与1900-1-1之间的天数,再计算1900-1-1加上这个天数的日期。
正解,顶一下
第2个回答  2012-10-26
1.DateAdd(interval, number, date)
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔

2.DateDiff(interval, date1, date2)
表示用来计算date1 和 date2 的时间差的时间间隔
3.DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 从内到外看。
DATEDIFF(dd,0,getdate()) 是两日期相减。
DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
第3个回答  2012-10-27
1、DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
1) getdate():返回当前的日期和时间的函数。
2) DATEDIFF(dd,0,getdate())是计算当前日期和“19000101 00:00:00.000”这个日期之间的天数。 (时期和时间变量和毫秒一样是从“19000101 00:00:00.000”开始计算的。
所以DATEDIFF函数中指定第一个时间表达式为“0”。)
3) DATEADD,增加当前日期到“19000101”的天数