我有将日期存储为文本的数据,例如:
2001年1月1日
我看到了许多示例,这些示例显示了如何将日期时间格式化为这种格式,但是我正在寻找一个将其更改回日期的函数。
更令人困惑的是我尝试给我的“ 2020-01-01”。有什么建议吗?
DECLARE @d varchar(10) = 'Jan 01, 2001'
SELECT TRY_CONVERT(date, @d)
我正在使用SQL Server 2014。
答案 0 :(得分: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。