sql формат даты "2019-10-30", "2019/10/30", "10-30-2019" и "30.10.2009" - PullRequest
2 голосов
/ 11 ноября 2019

Я думаю, нет сомнений, что в sql "2019-10-30" допустимый формат даты, и похоже, что "2019/10/30" также принято.

А как насчет "10-30-2019" и "10/30/2019"?

Я попробовал их в mariaDB, и они имеют неправильный формат, но почему-то мне кажется, что я видел их в некоторых таблицах sql. Пожалуйста, помогите мне уточнить формат даты. Спасибо

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

В MariaDB формат дат - yyyy-mm-dd. Но MariaDB довольно слаб, и другие форматы принимаются;из документации :

A DATE строка представляет собой строку в одном из следующих форматов: 'YYYY-MM-DD' или 'YY-MM-DD'. Обратите внимание, что в качестве разделителя можно использовать любой знак пунктуации. Все разделители должны состоять из 1 символа. Разные разделители могут быть использованы в одной строке. Разделители являются необязательными (но если используется один разделитель, должны использоваться все разделители).

A DATE Литерал также может быть целым числом в одном из следующих форматов: YYYYMMDD или YYMMDD.

Все следующие литералы DATE являются действительными, и все они представляют одно и то же значение:

'19940101'

'940101'

'1994-01-01'

'94/01/01'

'1994-01/01'

'94:01!01'

19940101

940101

Итак, для предоставленных вами примеров:

2019-10-30    -- ok: default format
2019/10/30    -- ok: format with alternative delimiter
10-30-2019    -- NOT ok
10/30/2019    -- NOT ok

Вы можете перевести строку в дату с помощью функции str_to_date().

str_to_date('10-30-2019', '%m-%d-%Y')
str_to_date('10/30/2019', '%m/%d/%Y')
0 голосов
/ 11 ноября 2019

Что вы действительно делаете, так это конвертируете строковое представление даты во внутреннее представление даты-времени или тип данных. Формат, на который вы ссылаетесь: ISO 8601 . Формат даты ISO (2019-10-30 с дефисами или круглыми скобками) обычно является исходным преобразованием или преобразованием строки по умолчанию, которое используется большинством баз данных, поэтому эти форматы работают, даже если преобразование не указано. Если вы собираетесь конвертировать из других форматов, вам, вероятно, потребуется указать их. Ваше представление по умолчанию для локальных настроек также может работать, но это зависит от конкретной базы данных.

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