SQL Server datetimeoffset и для автоматического изменения даты и времени json на datetime - PullRequest
0 голосов
/ 31 мая 2018

Я выбираю запись из таблицы, имеющей несколько столбцов datetimeoffet, когда я добавляю для json auto, она преобразует ее из

2017-06-21 08:12:16.1430000 +00:00 

в

2017-06-21T08:12:16.1430000Z

Этомой код:

select LastUpdateTimestamp 
from table
where id = 1
for json auto

, который производит такой вывод:

[{"LastUpdateTimestamp":"2017-06-21T08:12:16.1430000Z"}]

Как мне сохранить его в формате без его преобразования или как я могу преобразовать его в C # обратноэтот формат?Я делаю много динамичной работы, и я не могу полагаться на все даты, чтобы соответствовать определенному формату.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

В JSON нет типа данных даты и времени JSON и стандарта для строковых форматов для данных даты и времени.Базовый тип данных SQL Server datetimeoffset(7) представляет собой 10-байтовую двоичную структуру без понятия формата, поэтому он не может быть представлен в строке JSON без преобразования.

SQL Server по умолчанию возвращает строки в формате ISO 8601 с JSON AUTO.Проблема, с которой вы столкнулись, заключается в том, что «+00: 00» подавляется с помощью UTC;смещение включается, только если смещение UTC не равно нулю.

Вы можете использовать функцию FORMAT T-SQL для управления форматом строки, если значения по умолчанию JSON AUTO недостаточны:

FORMAT(LastUpdateTimestamp,'O') AS LastUpdateTimestamp
0 голосов
/ 31 мая 2018
select DATE_FORMAT
      (LastUpdateTimestamp,'%d %M %Y')
        from table where id = 1

Использование функции MySQL DATE_FORMAT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...