将日期转换为 datetime2

时间:2021-03-03 06:37:58

标签: sql sql-server ssms sql-server-2017

在我的“示例”表中,我有一个 nvarchar 的“日期”列,我想将其转换为 ISO 8601 datetime2 格式。

我现在的日期格式如下:

01-JAN-20 12.00.00.0000000AM

将其转换为 ISO 8601 datetime2 格式的代码是什么?

2 个答案:

答案 0 :(得分:0)

ISO 8601 是日期/时间值的字符串格式规范,而 datetime2 是内部二进制值。

要将 dd-mon-yy 格式的日期字符串转换为 datetime2 值,然后将该值格式化为 ISO 8601 日期/时间字符串,您可以使用:

FORMAT(CAST('01-JAN-20' AS datetime2), 'yyyy-MM-ddTHH:mm:ss.ffffff').

请注意,2 位数年份不明确,将根据实例 2-digit year cut-off configuration 进行解释。

答案 1 :(得分:0)

SQL Server 在没有格式的转换方面非常聪明。以下似乎有效:

select convert(datetime2, left('01-JAN-20 12.00.00.0000000AM', 9))

注意:这将值置于午夜,因为您将值描述为“日期”,我认为它没有时间分量。