我想將 5-6 毫秒數字的 UTC 時間戳轉換為 SQL Server 日期時間。我不想本地化或任何東西,只想保留 UTC 但將其轉換為日期時間
例如
declare @utc_timestamp varchar(20) = '2022-10-05T13:12:02.000402Z';
-- Desired datetime format (is this even possible or does this not conform to SQL Server's datetime format?
2022-10-05 13:12:02.000402
有趣的是,這有效:
declare @utc_timestamp varchar(20) = '2022-10-05T13:12:22Z';
select cast(@utc_timestamp as datetime)
-- result
2022-10-05 13:12:22.000
所以它讓我相信,如果 SQL Server 的日期時間沒有太多 ms 數字,它只能決議 UTC 時間戳。
uj5u.com熱心網友回復:
您可以使用datetime2它,它具有更高的精度。
select cast('2022-10-05T13:12:02.000402Z' as datetime2)
uj5u.com熱心網友回復:
@Vvdl 已經寫了一個答案來解釋如何解決這個問題。我想通過提供對檔案相關部分的參考來補充這一點。
datetime此處記錄了允許的格式:日期時間支持的字串文字格式。ISO 8601部分列出了以下格式:
YYYY-MM-DDThh:mm:ss[.mmm]
datetime2, 另一方面, 支持更多小數位: Supported string literal formats for datetime2
YYYY-MM-DDThh:mm:ss[.nnnnnnn]
在示例中,檔案進一步解釋了"...[t]he time zone is truncated...",這解釋了為什么Z允許尾隨,即使它與上述格式不匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516255.html
