提前致谢。
我的问题是我的开始时间(2017-10-09 20:28:05.997)和结束时间(2017-10-10 05:37:12.413)在我的桌子上
我想查看使用tsql的小时数将介于(2017-10-09 22:00 00:00)和(2017-10-10 06:00:00.000)之间,这是不变的。
谢谢!
答案 0 :(得分:1)
我认为datediff()
可以满足您的需求。这有用吗?
select datediff(hour, starttime, endtime) as hours
由于datediff()
仅计算边界(小时边界位于小时的顶部),因此有时最好使用较小的单位然后进行算术运算。
例如,十进制小时非常接近:
select datediff(second, starttime, endtime) / (60 * 60.0) as decimal_hours
答案 1 :(得分:0)
你应该这样做:
Declare @start_time datetime;
Declare @start_range datetime;
Declare @end_range datetime;
Declare @end_time datetime;
If @start_range < @start_time
Begin
Set @start_range =@start_time;
End
If @end_time < @end_range
Begin
Set @end_range =@end_time;
End
Select datediff(hour, @start_range, @end_range)
在范围变量中,您可以设置要查找的固定范围