如何在 sql 中从当天获取仅两小时分钟秒的数据



在这里,我试图显示小时,分钟和秒。 即当前时间是上午 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
)

最新更新