我有一个日期格式为2006-09-08 14:39:41.000
的列
我想使用此列创建视图,但我需要在ISO 8601中显示日期:yyyy-MM-ddThh:mm:ss.SSSZ
我该如何转换它?
答案 0 :(得分:17)
ISO 8601的转换代码为126,您可以使用以下内容:
SELECT CONVERT(VARCHAR, DateColumn, 126) FROM Table
答案 1 :(得分:10)
请尝试以下操作:
SELECT CONVERT(char(30), '2006-09-08 14:39:41.000',126)
希望它有所帮助。
答案 2 :(得分:2)
以下示例显示当前日期和时间,使用CAST将当前日期和时间更改为字符数据类型,然后使用CONVERT以ISO 8901格式显示日期和时间。
SELECT
GETDATE() AS UnconvertedDateTime,
CAST(GETDATE() AS nvarchar(30)) AS UsingCast,
CONVERT(nvarchar(30), GETDATE(), 126) AS UsingConvertTo_ISO8601 ;
GO
这是结果集。
UnconvertedDateTime UsingCast UsingConvertTo_ISO8601
----------------------- ------------------------------ ------------------------------
2006-04-18 09:58:04.570 Apr 18 2006 9:58AM 2006-04-18T09:58:04.570
(1 row(s) affected)
以下示例与前一示例大致相反。该示例将日期和时间显示为字符数据,使用CAST将字符数据更改为datetime数据类型,然后使用CONVERT将字符数据更改为datetime数据类型。
SELECT
'2006-04-04T15:50:59.997' AS UnconvertedText,
CAST('2006-04-04T15:50:59.997' AS datetime) AS UsingCast,
CONVERT(datetime, '2006-04-04T15:50:59.997', 126) AS UsingConvertFrom_ISO8601 ;
GO
这是结果集。
UnconvertedText UsingCast UsingConvertFrom_ISO8601
----------------------- ----------------------- ------------------------
2006-04-04T15:50:59.997 2006-04-04 15:50:59.997 2006-04-04 15:50:59.997
(1 row(s) affected)