Функции работы с временем и датой в SQLite

Категория: SQL Комментариев: 0

Начиная с версии 2.8.7 в SQLite имеются встроенные функции для работы с временем и датами.

Функции

  • date ( timestring, modifier, modifier, ...)
    Возвращает дату в формате YYYY-MM-DD
  • time ( timestring, modifier, modifier, ...)
    Возвращает время в формате HH:MM:SS
  • datetime ( timestring, modifier, modifier, ...)
    Возвращает дату и время в формате YYYY-MM-DD HH:MM:SS
  • julianday ( timestring, modifier, modifier, ...)
    Возвращает день по юлианскому исчислению, который представляет из себя число с плавающей точкой. Отсчет ведется от 4714 года до н.э.
  • strftime ( format, timestring, modifier, modifier, ...)
    возвращает строку с временем и датой в заданном формате
  • current_time
    Возвращает текущее время в формате HH:MM:SS
  • current_date
    Возвращает текущую дату в формате YYYY-MM-DD
  • current_timestamp
    Возвращает текущую время и дату в формате YYYY-MM-DD HH:MM:SS

Функциям можно передавать неогранченное число модификаторов. Они позволяют выполнить любые арифметические действия над датой перед возвращением зачения.

Форматы дат
Вышеупомянутые функции могут работать со следующими форматами даты и времени:

  • YYYY-MM-DD
  • YYYY-MM-DD HH:MM
  • YYYY-MM-DD HH:MM:SS
  • YYYY-MM-DD HH:MM:SS.SSS
  • YYYY-MM-DDTHH:MM
  • YYYY-MM-DDTHH:MM:SS
  • YYYY-MM-DDTHH:MM:SS.SSS
  • HH:MM
  • HH:MM:SS
  • HH:MM:SS.SSS
  • now
  • DDDD.DDDD (день по юлианскому исчислению)

Если функции передать некорректный формат даты, то она вернет null (Сама СУБД SQLite при этом ошибку не вернет).

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

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

Все модификаторы, передающиеся в функцию, должны быть в кавычках.
select datetime('now','localtime','+3.5 seconds','+10 minutes');
select datetime('now','localtime','+3.5 seconds','weekday 2');

Форматирование
Для представления даты/времени в виде форматированной строки следует использовать функцию strftime со следующими метапоследовательностями:

  • %d — день месяца
  • %f Секунды и мллисекунды в формате SS.SSS
  • %H час, 00-24
  • %j день года, 001-366
  • %J Юлианский день
  • %m месяц, 01-12
  • %M минута, 00-59
  • %s количество секунд с 1970-01-01
  • %S секунды, 00-59
  • %w день недели, 0-6. Воскресенье — 0
  • %W неделя года, 00-53
  • %Y год, 0000—9999
  • %% %

select strftime("%m-%d-%Y %H:%M:%S %s %w %W",'now','localtime');

Автор: Кто-то   @   16 мая 2009 Комментариев: 0
Метки : ,

Поблагодарить автора

Webmoney Z163628999150, R617151845974

Комментариев: 0

Комментариев к этой записи поке нет. Ваш комментарий будет первым.
оставить комментарий

Предыдущая запись
«
Следующая запись
»