10

我有一个日期格式的列2006-09-08 14:39:41.000
我想使用此列进行查看,但我需要在 ISO 8601: 中显示日期yyyy-MM-ddThh:mm:ss.SSSZ
我怎样才能转换它?

4

3 回答 3

20

ISO 8601 的转换代码是 126,您可以使用如下代码:

SELECT CONVERT(VARCHAR, DateColumn, 126) FROM Table
于 2013-05-08T07:03:40.010 回答
13

尝试以下操作:

SELECT CONVERT(char(30), '2006-09-08 14:39:41.000',126)

希望能帮助到你。

于 2013-05-08T07:00:00.627 回答
3

以下示例显示当前日期和时间,使用 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) 
于 2013-05-08T07:03:25.407 回答