Sql-Server

我們如何獲得兩個日期時間之間的小時、分鐘和秒差?

  • September 30, 2021

任務的table列如下:

Task(TaskID, TaskName, CreatedDate)

並希望根據日期時間差執行程式碼塊:

IF 任務 CreatedDate 已過 15 分鐘 THEN

> > 執行塊#01 > > >

ELSE IF 任務 CreatedDate 還沒有超過 15 分鐘 THEN

> > 執行塊#02 > > >

我在下面的查詢中進行了測試,但結果為61633440

SELECT DATEDIFF(MINUTE, CONVERT(VARCHAR(10), CreatedDate, 108), CURRENT_TIMESTAMP) AS MinuteDiff

我們如何在sql中實現上述目標?

CURRENT_TIMESTAMP返回目前日期時間,例如2017-03-09 15:19:53.770.

CONVERT(VARCHAR(10), CreatedDate, 108)返回一個只有 time 的字元串15:19:53

DATEDIFF的第二個參數採用日期時間,因此您的字元串被隱式轉換為日期時間。由於 SQL Server 使用的日期沒有更好的用途,1900-01-01因此您的第二個參數最終是1900-01-01 15:19:53.000並且該函式返回自上個世紀初以來的分鐘數。

刪除第二個參數中的轉換,它應該適合你。

引用自:https://dba.stackexchange.com/questions/166679