如何獲得SQL Server中的兩個日期之間的小時數如何獲得SQL
例中的兩個日期之間的小時數:
staffing_start_date (2017-08-01 06:00:00.00000)
staffing_end_dt (2017-08-01 18:00:00.00000)
如何獲得SQL Server中的兩個日期之間的小時數如何獲得SQL
例中的兩個日期之間的小時數:
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
這正是我所需要的。謝謝。 – Tburg
不客氣。您可以檢查這是關閉此查詢的答案。謝謝。 –
請參閱DATEDIFF
函數 - https://docs.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)
請注意則DateDiff的意外疑難雜症的雖然。它根本沒有四捨五入。它會截斷到你正在尋找的水平(日,小時,分鐘等)
例如,這兩個都會返回1,所以四捨五入費迪南德的答案在大多數情況下更合適。
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您的意見。
如果你想要小時,是非常具體的,你可以使用,如下所示: 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
。
日期只是數字。數字的組成部分是日期,分數是時間。要獲得天的差異,你可以直接轉換爲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。
[如何獲取SQL Server中兩個日期之間的總小時數?](https://stackoverflow.com/questions/2475178/how-to-get-total-number-of-hours-between -two-dates-in-sql-server) – scsimon