对于前一天,我使用了以下表达式。
DATE_INSERTED >=DATEADD(day, DATEDIFF(day,0,GETDATE())-1,0)
AND DATE_INSERTED < DATEADD(day, DATEDIFF(day,0,GETDATE()),0)
如何从昨天上午 10 点到今天上午 10 点获取行
对于前一天,我使用了以下表达式。
DATE_INSERTED >=DATEADD(day, DATEDIFF(day,0,GETDATE())-1,0)
AND DATE_INSERTED < DATEADD(day, DATEDIFF(day,0,GETDATE()),0)
如何从昨天上午 10 点到今天上午 10 点获取行
-- yesterday at midnight:
DECLARE @yesterday DATETIME = DATEADD(DAY,DATEDIFF(DAY,1,GETDATE()),0);
SELECT
...
WHERE DATE_INSERTED >= DATEADD(HOUR, 10, @yesterday) -- 10 AM yesterday
AND DATE_INSERTED < DATEADD(HOUR, 34, @yesterday); -- 10 AM today
不要使用零,而是使用一些具有所需属性的日期(时间):
DATE_INSERTED >=
DATEADD(day, DATEDIFF(day,'20010102',GETDATE()),'2001-01-01T10:00:00')
AND DATE_INSERTED <
DATEADD(day, DATEDIFF(day,'20010102',GETDATE()),'2001-01-02T10:00:00')
即,如果您将自 2001 年 1 月 2 日以来发生的总天数加到 2001 年 1 月 1 日上午 10:00,您将始终获得“昨天上午 10 点”的值。第二个几乎相同。