使用datetime的MSSQL转换不输出Z时区指示符

oox*_*oxi 2 sql sql-server datetime

根据MSSQL文档调用convert样式127(带时区Z的ISO8601)时,输出应该是预期的yyyy-mm-ddThh:mi:ss.mmmZ.

但是执行以下SQL将输出相同的值(不带Z),无论样式126或127如何

SELECT convert(nvarchar(64), GetUtcDate(), 127), convert(nvarchar(64), GetUtcDate(), 126)
Run Code Online (Sandbox Code Playgroud)

我读文件错了吗?第一列应以Z表示UTC时区结束,不应该吗?使用MSSQL 2012.

Dam*_*ver 5

自2012年起,您可以使用FORMAT:

SELECT FORMAT(GetUtcDate(),'yyyy-MM-dd HH:mm:ss.fffzzz')
Run Code Online (Sandbox Code Playgroud)

不久之前产生的:

2014-05-13 08:23:29.093+01:00
Run Code Online (Sandbox Code Playgroud)

(或者,'yyyy-MM-dd"T"HH:mm:ss.fffzzz'如果你想要T分隔符而不是空格,你可以使用)