select (convert(datetime ,SWITCHOFFSET(CONVERT(datetimeoffset, '2022-02-11 11:15:00.000'),
(select current_utc_offset FROM sys.time_zone_info where name ='Singapore Standard Time')
))) CurrentTime
我怎樣才能達到低于預期的結果?
當前結果:
CurrentTime
-----------------------
2022-02-11 19:15:00.000
預期結果:
CurrentTime
-----------------------
2022-02-11 03:15:00.000
PS:我不能在腳本中使用-8或。-08:00
uj5u.com熱心網友回復:
sys.time_zone_info 中的偏移量是從 UTC 00:00 切換到另一個時區的偏移量。
因此,對于“新加坡標準時間”,即 08:00
但是如果需要切換到 UTC 時區,可以更改符號。
SELECT (CONVERT(DATETIME,
SWITCHOFFSET(CONVERT(DATETIME, '2022-02-11 11:15:00.000'),
(SELECT TRANSLATE(CURRENT_UTC_OFFSET,' -','- ') FROM sys.time_zone_info WHERE name ='Singapore Standard Time')
))) AS CurrentTime
更好的是使用AT TIME ZONE語法:
SELECT
CONVERT(DATETIME, (CONVERT(DATETIME, '2022-02-11 11:15:00.000')
AT TIME ZONE 'Singapore Standard Time'
AT TIME ZONE 'UTC')) AS CurrentTime
兩種方法都將回傳相同的:
| 當前時間 |
|---|
| 2022-02-11 03:15:00.000 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425359.html
上一篇:SQLN到無關系表
