我试图让适合在时隙从一个表,其中从数据库中获得
- 时隙开始在当前日期时间地板满小时
- 时隙两端一定日期时隙在当前日期时间地板到整小时加2小时
这样一个DateTime是2011-06-24 09:21:40.020
可能是之间:
2011-06-24 09:00:00.000 AND 2011-06-24 11:00:00.000
目前我已经得到了这一点,但我觉得嵌套DATEADD
是多余的。有没有更干净的方法来做到这一点?
SELECT dbo.Computer.ComputerName, dbo.Planned.DatePlanned
FROM dbo.Computer INNER JOIN
dbo.Planned ON dbo.Computer.ComputerID = dbo.Planned.ComputerID
WHERE dbo.Planned.DatePlanned
BETWEEN
(SELECT DATEADD(Hour, DATEDIFF(Hour, 0, GETDATE()), 0))
AND
(SELECT DATEADD(Hour, DATEDIFF(Hour, 0, DATEADD(Hour, 2, GETDATE())), 0))
这应该会给我在当前活动时间段内的所有ComputerNames和Planned Dates。