在这里,我试图显示小时,分钟和秒。 即当前时间是上午 10 点,我需要上午 9 点的数据。 所以这里它只显示小时而不是实际时间。当前时间是上午 10.33 点,我预计数据是上午 9.33 点,但输出仅显示上午 9.00 点数据而不是当前时间。
set @EndHour = dateadd(hh,datediff(hh,0,GETDATE()),0)
set @StartHour = dateadd(hh,-1,@EndHour)
当前时间是上午 10.33,我预计数据是上午 9.33,但数据显示的是上午 9.00
你对@EndHour
的定义是截断分钟和秒。
如果您希望该值最接近的分钟,也许您需要:
set @EndHour = dateadd(minute, datediff(minute, 0, GETDATE()), 0)
set @StartHour = dateadd(hour, -1, @EndHour);
或使用timefromparts()
:
select timefromparts(datepart(hour, getdate()) - 1,
datepart(minute, getdate()),
0, 0, 0
)