Spec-Zone.ru › MariaDB

Литералы дат и времени

Стандартные синтаксисы

MariaDB поддерживает стандарт SQL и синтаксис ODBC для литералов DATE, TIME и TIMESTAMP.

Синтаксис стандарта SQL:

  • DATE 'строка'
  • TIME 'строка'
  • TIMESTAMP 'строка'

Синтаксис ODBC:

  • {d 'строка'}
  • {t 'строка'}
  • {ts 'строка'}

Литералы timestamp обрабатываются как литералы DATETIME, так как в MariaDB диапазон DATETIME ближе к диапазону TIMESTAMP в стандарте SQL.

string — это строка в правильном формате, как поясняется ниже.

DATE литералы

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

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

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

'19940101'
'940101'
'1994-01-01'
'94/01/01'
'1994-01/01'
'94:01!01'
19940101
940101

DATETIME литералы

Строка DATETIME — это строка в одном из следующих форматов: 'YYYY-MM-DD HH:MM:SS' или 'YY-MM-DD HH:MM:SS'. Обратите внимание, что любой знак препинания может использоваться в качестве разделителя для части даты и для части времени. Все разделители должны состоять из 1 символа. В одной строке можно использовать разные разделители. Части часов, минут и секунд могут состоять из одного символа. По этой причине разделители обязательны для литералов DATETIME.

Разделитель между частью даты и частью времени может быть T или любой последовательностью пробельных символов (включая табуляцию, новые строки и символы возврата каретки).

Литерал DATETIME также может быть числом в одном из следующих форматов: YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD или YYMMDD. В этом случае все подчасти времени должны состоять из 2 цифр.

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

'1994-01-01T12:30:03'
'1994/01/01\n\t 12+30+03'
'1994/01\\01\n\t 12+30-03'
'1994-01-01 12:30:3'

TIME литералы

Строка TIME — это строка в одном из следующих форматов: 'D HH:MM:SS', 'HH:MM:SS, 'D HH:MM', 'HH:MM', 'D HH', или 'SS'. D — это значение от 0 до 34, которое представляет дни. : — единственный разрешенный разделитель для литералов TIME. Разделители обязательны, за исключением формата 'HHMMSS'. Когда используются разделители, каждая часть литерала может состоять из одного символа.

Литерал TIME также может быть числом в одном из следующих форматов: HHMMSS, MMSS, или SS.

Следующие литералы эквивалентны:

'09:05:00'
'9:05:0'
'9:5:0'
'090500'

Двухзначные годы

Часть года в литералах DATE и DATETIME определяется следующим образом:

  • 70 - 99 = 1970 - 1999
  • 00 - 69 = 2000 - 2069

Микросекунды

Литералы DATETIME и TIME могут иметь необязательную часть микросекунд. В обоих строчных и числовых формах она выражается как десятичная часть. Разрешено до 6 десятичных знаков. Примеры:

'12:30:00.123456'
123000.123456

Подробности см. в Микросекунды в MariaDB.

Литералы дат и времени и SQL_MODE

Если флаг SQL_MODE NO_ZERO_DATE не установлен, разрешены некоторые специальные значения: '0000-00-00' DATE, '00:00:00' TIME, и 0000-00-00 00:00:00 DATETIME.

Если установлен флаг ALLOW_INVALID_DATES, допустимы некорректные даты (например, 30 февраля). Если нет, если установлен NO_ZERO_DATE, генерируется ошибка; в противном случае возвращается нулевая дата.

Если флаг NO_ZERO_IN_DATE не установлен, каждая часть значения даты или времени (год, час и т. д.) может быть установлена в 0.

См. также

  • Единицы дат и времени
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/date-and-time-literals/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API