我有数据,其中日期存储为文本,例如:
2001年1月1日
我看到一些示例显示如何将日期时间格式化为此格式,但我正在寻找一个函数将其更改回日期。
更令人困惑的是我试过的东西给了我“2020-01-01”。有什么建议?
DECLARE @d varchar(10) = 'Jan 01, 2001'
SELECT TRY_CONVERT(date, @d)
我正在使用SQL Server 2014。
你的字符串不够长。用足够长的长度声明它:
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。