如何在 SQL Server 中获取两个日期之间的小时数
示例:
staffing_start_date (2017-08-01 06:00:00.00000)
staffing_end_dt (2017-08-01 18:00:00.00000)
如何在 SQL Server 中获取两个日期之间的小时数
示例:
staffing_start_date (2017-08-01 06:00:00.00000)
staffing_end_dt (2017-08-01 18:00:00.00000)
datediff()
函数:select datediff(hour, staffing_start_date, staffing_end_date)
DATEDIFF(second, staffing_start_date, staffing_end_date) / 3600.0
请参考 DATEDIFF
函数 - https://learn.microsoft.com/en-us/sql/t-sql/functions/datediff-transact-sql。
对于您的问题,您可以使用以下方法:
DATEDIFF
( HOUR, staffing_start_date , staffing_end_dt )
DATEDIFF
( HH, staffing_start_date , staffing_end_dt )
感谢 @Jay Wheeler 的评论。
如果您想要非常具体的小时数,可以使用以下代码:
Declare @Start DateTime = '1/1/17 7:59 AM'
Declare @End Datetime = '1/1/17 8:00 AM'
select DATEDIFF(MINUTE, @Start, @end) /60 AS Hour
如果你没有理解其他答案,你可以使用DATEDIFF
。
declare @Start DateTime = '1/1/17 7:59 AM'
Declare @End Datetime = '1/1/17 8:00 AM'
select DATEDIFF(hour, @Start, @end)
declare @Start DateTime = '1/1/17 7:01 AM'
Declare @End Datetime = '1/1/17 8:59 AM'
select DATEDIFF(hour, @Start, @end)
int
,如果要获取小时差异,则乘以 24。DECLARE @Date1 DateTime
DECLARE @Date2 DateTime
SELECT @Date1 = {ts '2017-08-29 00:00:00.000'},
@Date2 = {ts '2017-08-27 00:00:00.000'}
SELECT CONVERT(int, @Date1) - CONVERT(int, @Date2) AS DifferenceInDays
SELECT (CONVERT(int, @Date1) - CONVERT(int, @Date2)) * 24 AS DifferenceInHours
或者您可以使用 DATEDIFF。