對於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