Pal*_*ngh -3 sql t-sql sql-server datetime sql-server-2019
我需要在 SQL Server 2019 中将“13/10/2021 09:38:20 PM”转换为“2021/10/13 21:38:20”。我在互联网上查找了相同的内容,但找不到一个办法。请帮我。
为什么你要从一个糟糕的区域格式开始?为什么你关心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);
Run Code Online (Sandbox Code Playgroud)
输出:
| 健全输出 | 错误输出 |
|---|---|
| 2021-10-13 21:38:20.000 | 2021/10/13 21:38:20 |
这很复杂,因为您想要的格式本身不可用(好吧,除非您使用我确信有人会推荐的极其昂贵的FORMAT()函数)。有关负责任约会的更多信息请参见此处。
| 归档时间: |
|
| 查看次数: |
939 次 |
| 最近记录: |