对于日期时间和日期时间 2 的 ISO 8601 格式,以下是 SQL Server 的建议。它不支持 datetime(yyyyMMddThhmmss) 的基本 ISO 8601 格式。
日期时间
YYYY-MM-DDThh:mm:ss[.mmm]
YYYYMMDD[hh:mm:ss[.mmm]]
例子:
-
2004-05-23T14:25:10
-
2004-05-23T14:25:10.487
日期时间2
YYYY-MM-DDThh:mm:ss[.nnnnnn]
YYYY-MM-DDThh:mm:ss[.nnnnnn]
例子:
-
2004-05-23T14:25:10
-
2004-05-23T14:25:10.8849926
您可以使用 126 选项转换它们
--Datetime
DECLARE @table Table(ExtendedDate DATETIME, BasicDate Datetime)
DECLARE @ExtendedDate VARCHAR(30) = '2020-07-01T08:39:17' , @BasicDate VARCHAR(30) = '2009-01-23T10:53:21.000'
INSERT INTO @table(ExtendedDate, BasicDate)
SELECT convert(datetime,@ExtendedDate,126) ,convert(datetime,@BasicDate,126)
SELECT * FROM @table
go
-- Datetime2
DECLARE @table Table(ExtendedDate DATETIME2, BasicDate Datetime2)
DECLARE @ExtendedDate VARCHAR(30) = '2000-01-14T13:42:00.0000000' , @BasicDate VARCHAR(30) = '2009-01-23T10:53:21.0000000'
INSERT INTO @table(ExtendedDate, BasicDate)
SELECT convert(datetime2,@ExtendedDate,126) ,convert(datetime2,@BasicDate,126)
SELECT * FROM @table
go
日期时间
+-------------------------+-------------------------+
| ExtendedDate | BasicDate |
+-------------------------+-------------------------+
| 2020-07-01 08:39:17.000 | 2009-01-23 10:53:21.000 |
+-------------------------+-------------------------+
日期时间2
+-----------------------------+-----------------------------+
| ExtendedDate | BasicDate |
+-----------------------------+-----------------------------+
| 2000-01-14 13:42:00.0000000 | 2009-01-23 10:53:21.0000000 |
+-----------------------------+-----------------------------+