如何在sql中获取两个日期之间的小时数
如何在SQL Server中获取两个日期之间的小时数 例如:如何在sql中获取两个日期之间的小时数,sql,sql-server,Sql,Sql Server,如何在SQL Server中获取两个日期之间的小时数 例如: staffing_start_date (2017-08-01 06:00:00.00000) staffing_end_dt (2017-08-01 18:00:00.00000) 您可以使用datediff(): 如果您需要分数小时数,可以使用下面的 DATEDIFF(second, staffing_start_date, staffing_end_date) / 3600.0 请参见DATEDIFFfunction- 对于
staffing_start_date (2017-08-01 06:00:00.00000)
staffing_end_dt (2017-08-01 18:00:00.00000)
您可以使用
datediff()
:
如果您需要分数小时数,可以使用下面的
DATEDIFF(second, staffing_start_date, staffing_end_date) / 3600.0
请参见
DATEDIFF
function-
对于您的问题,您可以使用:
DATEDIFF
(小时、人员配备开始日期、人员配备结束日期)
DATEDIFF
(HH,人员配备开始日期,人员配备结束日期)
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)
感谢@Jay Wheeler的评论 如果您希望小时非常具体,您可以使用如下所示:
声明@Start DateTime='1/1/17上午7:59'
声明@End Datetime='1/1/17上午8:00'
选择DATEDIFF(分钟、开始、结束)/60作为小时
如果您不理解其他答案,您可以使用DATEDIFF
日期只是数字。数字的整数部分是日期,分数部分是时间。要获得天数差异,您可以将其转换为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
或者您也可以使用。我需要的正是这个的可能副本。谢谢,不客气。您可以将此复选框作为结束此查询的答案。谢谢
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