簡體   English   中英

回合時間(7)列值不近15分鍾

[英]Round time(7) column values no nearest 15 minutes

我有類型time(7)[允許空值]的列,有些值需要調整到最接近的15分鍾標記,秒數設置為零。

例:

09:00:40.0000000 -> 09:00:00.0000000
12:50:00.0000000 -> 12:45:00.0000000
12:59:37.0000000 -> 13:00:00.0000000

嘗試這個-

SELECT 
CAST
(
    DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0,
    CAST('2015-11-24  ' -- Add any day for converting to DateTime
    +LEFT('09:00:40.0000000',LEN('09:00:40.0000000') - 4) -- Removing last four zero from your data to convert to date time
    AS DATETIME)) / 15.0, 0) * 15, 0) 
    AS TIME
);

我推薦timefromparts()

select timefromparts(datepart(hour, timecol),
                     (datepart(minute, timecol) / 15) * 15,
                     0, 0, 6)

以上截斷了該值。 舍入值是一個小問題。 我建議:

select timefromparts(datepart(hour, dateadd(second, 7 * 60 + 30, timecol)),
                     (datepart(minute, dateadd(second, 7 * 60 + 30, timecol)) / 15) * 15,
                     0, 0, 6)

也就是說,添加7.5分鍾並截斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM