将转换后的格式更改为ISO日期 - SQL Server

问题描述 投票:2回答:1

我有数据,其中日期存储为文本,例如:

2001年1月1日

我看到一些示例显示如何将日期时间格式化为此格式,但我正在寻找一个函数将其更改回日期。

更令人困惑的是我试过的东西给了我“2020-01-01”。有什么建议?

DECLARE @d varchar(10) = 'Jan 01, 2001'
SELECT TRY_CONVERT(date, @d)

sql result

我正在使用SQL Server 2014。

sql sql-server
1个回答
6
投票

你的字符串不够长。用足够长的长度声明它:

DECLARE @d varchar(255) = 'Jan 01, 2001';

SELECT TRY_CONVERT(date, @d);

如果显示@d的值,您将看到此代码返回的内容:

DECLARE @d varchar(10) = 'Jan 01, 2001';

SELECT @d, TRY_CONVERT(date, @d);

这是'Jan 01, 20'。 SQL Server将其解释为2020。

© www.soinside.com 2019 - 2024. All rights reserved.