Похоже, что SQL Сервер представляет нулевое смещение или время UT C с Z
.
Если вы запустите SELECT TODATETIMEOFFSET(GETDATE(),60)
, который захватывает текущее время и применяет смещение в 1 час, вы получите ожидаемый формат. Тем не менее, я считаю, что Z
, обозначающий UT C, вполне приемлемо в ISO8601, но может ошибаться.
Эта команда выводит JSON, как и ожидалось.
SELECT TODATETIMEOFFSET(GETDATE(),60) as T FOR JSON PATH
Если важно, чтобы смещение нуля было представлено как 00:00
, я полагаю, что вы будете вынуждены работать со строками.
select CAST(CONVERT(NVARCHAR(33), getdate(), 127) as NVARCHAR(35)) + '+00:00' as T
FOR JSON PATH