我有這樣的時間戳資料列
2021-12-09 08:01:00.520
我想洗掉分鐘和秒,然后在一行中將日期轉換為 UTC 時區。
我試過這個代碼
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, Time_Stamp), 0) From Table1
我得到這個結果
2021-12-09 08:00:00.000
我試過這個代碼
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), Time_Stamp)From Table1
我得到這個結果
2021-12-09 16:01:00.520
我期望的是
2021-12-09 16:00:00.000
如何以簡單的方式將select陳述句合并為一行
uj5u.com熱心網友回復:
將日期轉換為字串并截斷以洗掉分鐘和秒。然后添加您的時區和 UTC 之間的分鐘差異。
select dateadd(minute,datediff(minute,getdate(),getutcdate()),convert(datetime2(0),convert(varchar(13),getdate(),126) ':00:00',126));
uj5u.com熱心網友回復:
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), dateadd(hour, datediff(hour, 0, Time_Stamp), 0)) FROM Table1
uj5u.com熱心網友回復:
這是另一種方式。
要洗掉分鐘,秒并只保留小時,您可以使用以下查詢
DATEADD(HOUR, DATEDIFF(HOUR, 0, Time_Stamp), 0)
要轉換為UTCDate,只需找到GETDATE()和之間的小時()不同GETUTCDATE()(因為無論如何您對分鐘和秒都不感興趣)并將其添加到上述查詢中
放在一起
DATEADD(HOUR, DATEDIFF(HOUR, 0, Time_Stamp) DATEDIFF(HOUR, GETDATE(), GETUTCDATE()), 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401901.html
標籤:sql sql-server 查询语句 sql-server-2014
下一篇:如何計算SQL中每周的變化?
