c # datetimeoffset JSON десериализация - PullRequest
0 голосов
/ 31 мая 2018

Я запрашиваю таблицу без сумасшествия, просто регулярно выбираю, у таблицы есть datetimeoffset (7), затем использующий для json.Результат json отправляется в другую базу данных с той же схемой для таблицы, включая datetimeoffset (7), но когда я десериализую json и выполняю вставку в c #, я получаю разные форматы времени.

c # дляdatatable

DataTable data = JsonConvert.DeserializeObject<DataTable>(messageData["Records"].ToString());

пример даты, когда две таблицы объединены вместе

select LastUpdateTimestamp from sourcetable
where id = 1
union 
select LastUpdateTimestamp from destinationtable
where id = 1

enter image description here

Результат запроса от сервера sql запросовисходная таблица

select LastUpdateTimestamp from sourcetable where id = 1

enter image description here

Автоматический результат для json:

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

Запрос к таблице назначения приводит к

select LastUpdateTimestamp from destinationtable where id= 1

enter image description here

messageData [" Записей [""] .ToString () равно

[{"timestamp1":"2017-05-24T10:18:00.0000000Z","timestamp2":"2017-05-24T15:15:00.0000000Z","CreateTimestamp":"2017-06-21T08:12:16.1420000Z","LastUpdateTimestamp":"2017-06-21T08:12:16.1430000Z"}]

Я отмечу, что sql server 2016 для azure sql db

Запрос, который возвращает сокращенное значение datetimeoffset

select LastUpdateTimestamp from table
where UnifiedCustomerRequestID = 1
for json auto

для jsonавтоматически возвращается как 2017-06-21T08: 12: 16.1430000Z вместо смещения.

Я добавил конвертер datetimeoffset в моем c# код, он по какой-то причине по-прежнему пропускает миллисекунды, но получает правильный формат (кроме миллисекунд).

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