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

标签 sql sql-server

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

Jan 01, 2001

我看到许多示例展示了如何将日期时间格式化为这种格式,但我正在寻找一个函数来将它改回日期。

更令人困惑的是,我尝试的结果是“2020-01-01”。有什么建议吗?

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

sql result

我使用的是 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。

关于sql - 将转换后的格式更改为 ISO 日期 - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55819564/

相关文章:

mysql - 需要计算马的年龄

sql - PostgreSQL:如何检查我没有使用任何关键字?

php - 我如何在 php foreach 循环中将所选值列为所选值并将其他值列为列表

sql-server - 使用 XML 更新表行 (SQL Server)

mysql - 这些 SQL 查询究竟出了什么问题

mysql - 如何优化这些 SQL 查询?

sql - 识别有 1 年或以上差异的两行

mysql - 将 SQL Server 表迁移到具有不同编码的 MySQL 表

sql - 将 Nvarchar(max) 转换为 nvarchar 的最佳/最有效方法 (30)

SQL Server : query simplification - many joins and a giant WHERE section