Вы не можете записать такое ограничение в объявлении таблицы.
Существуют некоторые способы обхода:
photo_order
, который сохранит порядок фотографий, сделайте (user_id, photo_order)
UNIQUE
и добавьте CHECK (photo_order BETWEEN 1 И 10)
Нет правильного формата; Спецификация JSON не указывает формат обмена датами, поэтому существует так много разных способов сделать это.
Лучший формат - это, возможно, дата, представленная в Формат ISO 8601 ( см. В Википедии ); это хорошо известный и широко используемый формат и может обрабатываться на разных языках, что делает его очень подходящим для взаимодействия. Если у вас есть контроль над сгенерированным json, например, вы предоставляете данные другим системам в формате json, выбирая 8601, поскольку формат обмена датами является хорошим выбором.
Если у вас нет контроля над сгенерированным Например, json, вы являетесь потребителем json из нескольких разных существующих систем, лучший способ справиться с этим - иметь функцию служебной обработки синтаксиса даты для обработки ожидаемых различных форматов.
На это есть только один правильный ответ, и большинство систем ошибаются. Число миллисекунд с эпохи, а также 64-битное целое число. Часовой пояс - это проблема с пользовательским интерфейсом и не имеет бизнеса на уровне приложения или уровне db. Почему ваш db заботится о том, что в часовом поясе что-то есть, когда вы знаете, что он будет хранить его в виде 64-битного целого числа, тогда выполните вычисления преобразования.
Разделите посторонние биты и просто обработайте даты как числа до пользовательский интерфейс. Вы можете использовать простые арифметические операторы для выполнения запросов и логики.
В Sharepoint 2013, получая данные в JSON, нет формата для преобразования даты только в формат даты, потому что в эту дату должен быть формат ISO
yourDate.substring(0,10)
Это может быть полезно для вас
Из RFC 7493 (Формат сообщений I-JSON) :
I-JSON означает либо Internet JSON, либо Interoperable JSON, в зависимости от того, кого вы спросите.
Протоколы часто содержат элементы данных, предназначенные для хранения временных меток или продолжительности времени. РЕКОМЕНДОВАНО, чтобы все такие элементы данных были выражены в виде строковых значений в формате ISO 8601, как указано в RFC 3339 , с дополнительными ограничениями, которые используются в верхнем регистре, а не в нижнем регистре, чтобы включить часовой пояс не по умолчанию, и что дополнительные секундные секунды включаются, даже если их значение равно «00». Также РЕКОМЕНДОВАНО, что все элементы данных, содержащие временные интервалы, соответствуют «длительности» производства в Приложении А RFC 3339 с теми же дополнительными ограничениями.
blockquote>
Date().toISOString()
и Date().toJSON()
, с ограничением, что Date
не отслеживает значение часового пояса и, следовательно, всегда испускает отметки времени в часовом поясе UTC (Z
). Значение можно проанализировать с помощью new Date("...")
и Date.parseDate
.
– Søren Løvborg
21 September 2015 в 09:06
Я думаю, что это действительно зависит от варианта использования. Во многих случаях было бы более полезно использовать правильную объектную модель (вместо того, чтобы давать дату в строку), например:
{
"year": 2012,
"month": 4,
"day": 23,
"hour": 18,
"minute": 25,
"second": 43,
"timeZone": "America/New_York"
}
По общему признанию, это более подробно, чем RFC 3339, но:
Date.toJSON()
не делает) Я не думаю что правильная сортировка (как отмечено funroll для RFC 3339) - это функция, которая действительно необходима при сериализации даты для JSON. Также это верно только для дат-времени, имеющих одинаковое смещение часового пояса.
post contains wrong information, is poorly researched, or fails to communicate information
. Пожалуйста, объясните, по какой из этих причин вы отклонили этот ответ.
– Marten
7 June 2016 в 20:11
JSON ничего не знает о датах. Что делает .NET нестандартным хаком / расширением.
Я бы использовал формат, который можно легко преобразовать в объект Date
в JavaScript, то есть тот, который можно передать в new Date(...)
. Самый простой и, вероятно, самый переносимый формат - это метка времени, содержащая миллисекунды с 1970 года.
toJSON()
, если она существует на неизвестном объекте. По крайней мере, Firefox делает это для объектов Date и объектов Date таким способом.
– ThiefMaster♦
23 April 2012 в 19:40
JSON.stringify({'now': new Date()}) "{"now":"2013-10-21T13:28:06.419Z"}"
– Steven
21 October 2013 в 14:28
-
приходит перед цифрами в ASCII
, он будет сортироваться только до 100 000. ;П
– Ben Leggiero
2 May 2016 в 18:23
Для меня работал следующий код. Этот код будет печатать дату в формате DD-MM-YYYY.
DateValue=DateValue.substring(6,8)+"-"+DateValue.substring(4,6)+"-"+DateValue.substring(0,4);
else, вы также можете использовать:
DateValue=DateValue.substring(0,4)+"-"+DateValue.substring(4,6)+"-"+DateValue.substring(6,8);
это работа для меня с parse Server
{
"ContractID": "203-17-DC0101-00003-10011",
"Supplier":"Sample Co., Ltd",
"Value":12345.80,
"Curency":"USD",
"StartDate": {
"__type": "Date",
"iso": "2017-08-22T06:11:00.000Z"
}
}
Только для справки я видел этот формат:
Date.UTC(2017,2,22)
Он работает с JSONP, который поддерживается функцией $.getJSON()
. Не уверен, что я бы зашел так далеко, чтобы рекомендовать этот подход ... просто бросая его туда как возможность, потому что люди делают это таким образом.
FWIW: Никогда не используйте секунды с эпохи в протоколе связи, ни миллисекунд с эпохи, потому что это чревато опасностью благодаря рандомизированной реализации секунд прыжка (вы понятия не имеете, правильно ли передают отправители и получатели как секундные скачки UTC).
Вид домашней ненависти, но многие считают, что UTC - это просто новое имя для GMT - неправильно! Если ваша система не реализует секунды прыжка, вы используете GMT (часто называемый UTC, несмотря на то, что он неверен). Если вы полностью реализуете прыжковые секунды, вы действительно используете UTC. Невозможно знать будущие секунды прыжка; они публикуются IERS по мере необходимости и требуют постоянных обновлений. Если вы используете систему, которая пытается реализовать прыжки секунд, но содержит и устаревшую ссылочную таблицу (более часто, чем вы думаете), то у вас нет ни GMT, ни UTC, у вас есть система с выигрышем, претендующая на UTC.
Эти счетчики даты совместимы только при выражении в разбитом формате (y, m, d и т. д.). Они НИКОГДА не совместимы в формате эпохи. Имейте это в виду.