我需要在 SQL Server 2019 中將“13/10/2021 09:38:20 PM”轉換為“2021/10/13 21:38:20”。我已經在互聯網上查找了相同的資訊,但我找不到一個解法。請幫我。
uj5u.com熱心網友回復:
為什么你從一個糟糕的區域格式開始?為什么要關心 SQL Server 提供的格式?讓 SQL Server 解釋不明確的區域格式并提供適當的日期時間資料型別(或者,更好的是,修復源,使其一開始就不會提供不明確的格式)。如果您想將其呈現為類似yyyy/mm/dd 24:nn:ss讓表示層執行此操作的方式。
也就是說,您可以按如下方式執行此操作:
DECLARE @BadDateString varchar(32) = '13/10/2021 09:38:20 PM',
@SaneOutput datetime;
SET @SaneOutput = CONVERT(datetime, @BadDateString, 103);
SELECT SaneOutput = @SaneOutput,
BadOutput = CONVERT(char(11), @SaneOutput, 111)
CONVERT(char(8), @SaneOutput, 108);
輸出:
| SaneOutput | 壞輸出 |
|---|---|
| 2021-10-13 21:38:20.000 | 2021/10/13 21:38:20 |
這很復雜,因為您想要的格式本身不可用(好吧,除非您使用我相信有人會推薦的極其昂貴的FORMAT()功能)。更多關于負責任約會的資訊。
uj5u.com熱心網友回復:
由于您必須從一種格式轉換為另一種格式,首先您必須轉換為日期時間資料型別,然后應用自定義格式,如下所示:
DECLARE @datestring VARCHAR(50) = '13/10/2021 09:38:20 PM'
SELECT FORMAT(CONVERT(DATETIME,@datestring,103),'yyyy/MM/dd HH:mm:ss')
2021/10/13 21:38:20
參考資料:
- 格式
- 標準日期時間格式字串
- 自定義日期時間格式字串
警告:使用“格式”是昂貴的。所以,做出相應的決定。FORMAT很貴
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412811.html
標籤:
