strftime функция SQLite

В этом учебном пособии вы узнаете, как использовать SQLite функцию strftime с синтаксисом и примерами.

Описание

SQLite функция strftime — это очень мощная функция, которая позволяет вам возвращать отформатированную дату, а также выполнять вычисления дат в эту дату. Эта функция возвращает дату в виде текстового представления.

Синтаксис

Синтаксис функции strftime в SQLite:

strftime(format, timestring [, modifier1, modifier2, … modifier_n ] )

Параметры или аргументы

format
Строка формата для применения, которая может быть:

Format Пояснение
%d День месяца (1-31)
%f Секунды с долями секунды (SS.sss)
%H Час на 24-часовых часах (00-23)
%j День года (001-366)
%J Юлианский номер дня (DDDDDDD.ddddddd)
%m Месяц (01-12)
%M Минуты (00-59)
%s Секунды с 1970-01-01
%S Секунды (00-59)
%w День недели (0-6) (0 = воскресенье, 1 = понедельник, 2 = вторник, 3 = среда, 4 = четверг, 5 = пятница, 6 = суббота)
%W Номер недели в году (00-53) Первый понедельник — начало недели 1.
%Y Год с веком (гггг)
%% % как литерал

timestring
Значение даты. Это может быть одно из следующих:

timestring Пояснение
now now литерал, используемый для возврата текущей даты.
YYYY-MM-DD Значение даты в формате ‘YYYY-MM-DD’
YYYY-MM-DD HH:MM Значение даты в формате ‘YYYY-MM-DD HH:MM’
YYYY-MM-DD HH:MM:SS Значение даты в формате ‘YYYY-MM-DD HH:MM:SS’
YYYY-MM-DD HH:MM:SS.SSS Значение даты в формате ‘YYYY-MM-DD HH:MM:SS.SSS’
HH:MM Значение даты в формате ‘HH:MM’
HH:MM:SS Значение даты в формате ‘HH:MM:SS’
HH:MM:SS.SSS Значение даты в формате ‘HH:MM:SS.SSS’
YYYY-MM-DDTHH:MM Значение даты в формате YYYY-MM-DDTHH:MM, где Т — буквенный символ, разделяющий части даты и времени
YYYY-MM-DDTHH:MM:SS Значение даты в формате ‘YYYY-MM-DDTHH:MM:SS’, где Т — буквенный символ, разделяющий части даты и времени
YYYY-MM-DDTHH:MM:SS.SSS Значение даты в формате ‘YYYY-MM-DDTHH:MM:SS.SSS’, где Т — это буквенный символ, разделяющий части даты и времени
DDDDDDDDDD Юлианский номер даты

modifier1, modifier2, … modifier_n
Необязательный. Это модификаторы, которые применяются к timestring. Каждый модификатор применяется по порядку и является накопительным. Они могут быть одним или несколькими из следующих:

modifier Пояснение
[+-]NNN years Количество лет, добавленных/вычтенных к дате
[+-]NNN months Количество месяцев, добавленных/вычтенных к дате
[+-]NNN days Количество дней, добавленных/вычтенных к дате
[+-]NNN hours Количество часов, добавленных/вычтенных к дате
[+-]NNN minutes Количество минут, добавленных/вычтенных к дате
[+-]NNN seconds Количество секунд, добавленных/вычтенных к дате
[+-]NNN.NNNN seconds Количество секунд (и дробных секунд), добавленных/вычтенных к дате
start of year Перенос даты обратно на начало года
start of month Перенос даты обратно на начало месяца
start of day Перенос даты обратно на начало дня
weekday N Перемещает дату вперед на следующую дату, где номер дня недели равен N (0 = воскресенье, 1 = понедельник, 2 = вторник, 3 = среда, 4 = четверг, 5 = пятница, 6 = суббота)
unixepoch Используется с временной шкалой DDDDDDDDDD для интерпретации даты как времени UNIX (то есть: количество секунд с 1970-01-01)
localtime Регулирует дату по местному времени, при условии, что временная строка была выражена в UTC
utc Приспосабливает дату к utc, предполагая, что временная строка была выражена в местном времени

Применение

Функция strftime может использоваться в следующих версиях SQLite:

  • SQLite 3.8.6, SQLite 3.8.x, SQLite 3.7.x, SQLite 3.6.x

Пример

Рассмотрим примеры SQLite функций strftime и узнаем, как использовать функцию strftime в SQLite.

Пример текущей даты

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

Пример первого дня месяца

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

В этих примерах мы вычислили первый день месяца несколькими различными способами. Модификатор ‘start of month’ позволяет нам взять любое значение даты и вычислить первый день месяца для этой даты. Это включает использование timestring ‘now’.

Мы также можем добавлять или вычитать дни к значению даты, используя модификатор ‘NNN days’. В наших примерах мы вычли 6 дней из наших значений даты. Так как у нас было значение даты 2019-01-25, возвращается первый день месяца (т.е. 2019-01-01).

Пример последнего дня месяца

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

В этих примерах мы вычислили последний день месяца несколькими различными способами. Сначала мы используем модификатор ‘start of month’ для вычисления первого дня месяца, затем добавляем 1 месяц и затем вычитаем 1 день.

Мы также можем добавлять или вычитать дни к значению даты, используя модификатор ‘NNN days’. В наших примерах мы добавили 24 дня к нашим значениям даты. Поскольку у нас было значение даты 2019-01-25, это возвращает текущую дату +24 дня (то есть: 2019-02-18).

Пример сложения/вычитания лет

Вы можете использовать функцию strftime, чтобы манипулировать значением даты и добавлять или вычитать годы. Это делается с помощью модификатора ‘NNN years’ с функцией strftime следующим образом:

В этих примерах мы использовали модификатор ‘NNN years’, чтобы прибавить 2 года в первом примере, вычесть 2 года во втором примере и добавить 5 лет к текущей дате в третьем примере.

Пример сложения/вычитания дней

Вы можете использовать функцию strftime, чтобы манипулировать значением даты и добавлять или вычитать к нему дни. Это делается с помощью модификатора ‘NNN days’ с функцией strftime следующим образом:

В этих примерах мы использовали модификатор ‘NNN days’, чтобы добавить 7 дней в первом примере, вычесть 7 дней во втором примере и добавить 10 дней к текущей дате в третьем примере.