对于SQL Server 2008 R2在下面的格式中选择一组日期的XML消息,我需要:SQL Server日期时间ss.mmmZ
yyyy-mm-ddThh:mi:ss.mmmZ
我搜索谷歌和堆栈溢出了一下,来到以下解决方案:
SELECT STUFF(CONVERT(VARCHAR(50), CAST(GETDATE() AS DATETIMEOFFSET), 127),24,4,'')
这工作正常,除了毫秒的日期是“000”。在这种情况下,它选择NULL。
你能帮我找到一个解决方案,也适用于毫秒为“000”的日期吗?
您可以使用下面的代码段玩弄:
declare @timestamps table (
i int,
timestamp datetime
)
insert into @timestamps (i, timestamp)
values
(1, '2017-09-13 01:00:00.003'),
(2, '2017-09-13 02:00:00.333'),
(3, '2017-09-13 03:00:00.000'),
(4, '2017-09-13 04:00:00')
select i, timestamp, STUFF(CONVERT(VARCHAR(50), CAST(timestamp AS DATETIMEOFFSET), 127),24,4,'') from @timestamps
是这不够:'我选择了我,时间戳,CONVERT(varchar(50),timestamp,127)FROM @ timestamps' – Tanner
我首先尝试了这一点,但是 - 针对MS SQL文档中写的内容 - 它不显示“Z”结束(时区偏移)。因此,您示例中的输出为“2017-09-13T01:00:00.003”,而不是“2017-09-13T01:00:00.003Z”。 – Malawirel