Проходные даты из лучших практик веб-API db RESTful - PullRequest
0 голосов
/ 24 сентября 2018

Таким образом, у меня есть два типа дат в моей базе данных, date (yyyy-mm-dd) и datetimeoffset (yyyy-mm-ddThh:mm:ss.ms+Z), и мне было интересно, как лучше всего с этим обращаться, когда я беру данные из БД и передаю их какjson для пользовательского интерфейса / мобильного телефона.

Раньше я всегда разбирал даты на datetimeoffset, поэтому обычные даты будут выглядеть примерно так: 2018-09-24T00:00:00.000+00:00 вместо простого 2018-09-24, но он отлично работает с datetimeoffset, которые ужесохранен как то в БД

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Вы можете справиться с этой ситуацией несколькими способами.

1: со стороны API всегда указывайте предварительно заданное значение формата даты

пример yyyy-mm-ddThh:mm:ss.ms+Z

, а со стороны клиента на основе условий вы можете преобразовать его.

2: Сохраняйте разные Модели View / Свойства могут быть для хранения yyyy-mm-dd, вы можете указать string тип данных и для yyyy-mm-ddThh:mm:ss.ms+Z просто DateTime.и на основе вашей базы данных вы можете написать условие и отобразить конкретные данные.

3: Оставьте одно свойство для возврата даты и задайте его как string

Пример: Public string CurrentDate{get;set;}, и вы можете просто отобразить значения базы данных (необходимо выполнить преобразование).В этом случае клиенту не нужно беспокоиться о преобразовании даты, он может просто показать, что вы когда-либо передавали из API.

Примечание. Метод 3 не является предпочтительным, поскольку в некоторых случаях пользователь может видеть yyyy-mm-dd, в некоторых других местах yyyy-mm-ddThh:mm:ss.ms+Z.

0 голосов
/ 24 сентября 2018

Взгляните на Отображения типов данных SQL Server
. Вы увидите, что Date, DateTime и DateTime2 в SQL Server все соответствуют типу данных .Net DateTime,
и DateTimeOffset отображаются на DateTimeOffset.

SQL Server Database Engine type             .NET Framework type
date (SQL Server 2008 and later)            DateTime
datetime                                    DateTime
datetime2 (SQL Server 2008 and later)       DateTime
datetimeoffset (SQL Server 2008 and later)  DateTimeOffset
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...