SQLite поддерживает пять функций даты и времени следующим образом:

Функция Описание
date(timestring, modifiers...) Это возвращает дату в этом формате: YYYY-MM-DD
time(timestring, modifiers...) Это возвращает время как HH:MM:SS
datetime(timestring, modifiers...) Это возвращает YYYY-MM-DD HH:MM:SS
julianday(timestring, modifiers...) Это возвращает количество дней с полудня в Гринвиче 24 ноября 4714 г. до н.э.
strftime(timestring, modifiers...) Это возвращает дату, отформатированную в соответствии со строкой формата, указанной в качестве первого аргумента, отформатированного в соответствии с форматировщиками, описанными ниже.

Все вышеупомянутые пять функций даты и времени принимают временную строку в качестве аргумента. За строкой времени следуют ноль или более модификаторы. Функция strftime() также принимает в качестве первого аргумента строку формата. В следующем разделе вы подробно расскажете о различных типах временных строк и модификаторов.

Строки времени

Строка времени может быть в любом из следующих форматов:

Строка времени Пример
YYYY-MM-DD 2018-11-20
YYYY-MM-DD HH:MM 2018-11-20 12:10
YYYY-MM-DD HH:MM:SS.SSS 2018-11-20 12:10:04.100
MM-DD-YYYY HH:MM 20-11-2018 12:10
HH:MM 12:10
YYYY-MM-DDTHH:MM 2018-11-20 12:10
HH:MM:SS 12:10:01
YYYYMMDD HHMMSS 20181120 121001
now 2018-11-20

Вы можете использовать «Т» как буквенный символ, разделяющий дату и время.

Модификаторы

За строкой времени могут следовать ноль или более модификаторы, которые изменят дату и / или время, возвращаемое любой из пяти функций. Модификаторы применяются слева направо.

В версии SQLite доступны следующие модификаторы:

  • NNN days
  • NNN hours
  • NNN minutes
  • NNN.NNNN seconds
  • NNN months
  • NNN years
  • start of month
  • start of year
  • start of day
  • weekday N
  • unixepoch
  • localtime
  • utc

Форматтеры

SQLite предоставляет очень удобную функцию strftime() для форматирования любой даты и времени. Вы можете использовать следующие подстановки для форматирования даты и времени.

Подмена Описание
%d Day of month, 01-31
%f Fractional seconds, SS.SSS
%H Hour, 00-23
%j Day of year, 001-366
%J Julian day number, DDDD.DDDD
%m Month, 00-12
%M Minute, 00-59
%s Seconds since 1970-01-01
%S Seconds, 00-59
%w Day of week, 0-6 (0 is Sunday)
%W Week of year, 01-53
%Y Year, YYYY
%% % symbol