两个日期之间的差异
答
DATEDIFF
http://msdn.microsoft.com/en-us/library/ms189794.aspx
DECLARE @90DaysAgo datetime
,@Today datetime
SET @90DaysAgo = DATEADD(d, -90, GETDATE())
SET @Today = GETDATE()
SELECT DATEDIFF(d, @90DaysAgo, @Today) --Returns 90
答
试试这个返回的日期和时间整整90年前:
SELECT GETDATE()-90
输出:
-----------------------
2011-05-20 10:55:12.360
(1 row(s) affected)
这会给你的日期只有90天前,与一个钛我的00:00:00.000:
SELECT DATEADD(day,DATEDIFF(day,0,GETDATE()),-90)
输出:
-----------------------
2011-05-20 00:00:00.000
(1 row(s) affected)
答
这将在3个月前(不是90天前)当天的午夜正确地轮到,这似乎是你想要的(08-18 - > 05-18是92天后有两个31秒)。
...
WHERE column >= DATEADD(MONTH, -3,
DATEADD(DAY, DATEDIFF(DAY, '20000101', CURRENT_TIMESTAMP), '20000101'));
查找DATEDIFF():http://msdn.microsoft.com/en-us/library/ms189794.aspx –
以分,秒,是什么? – 2011-08-18 14:48:29
今天和90天前的区别?我相当肯定这是一个常数(忽略DST变化,闰秒等):-) –