В этом учебном пособии вы узнаете, как использовать SQLite функцию date с синтаксисом и примерами.
Описание
SQLite функция date - очень мощная функция, которая может вычислять дату и возвращать ее в формате 'YYYY-MM-DD'.
Синтаксис
Синтаксис функции date в SQLite:
Параметры или аргументы
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, предполагая, что временная строка была выражена в местном времени |
Примечание
Функция date возвращает результат, отображаемый в формате 'YYYY-MM-DD'.
Применение
Функция date может использоваться в следующих версиях SQLite:
- SQLite 3.8.6, SQLite 3.8.x, SQLite 3.7.x, SQLite 3.6.x
Пример
Рассмотрим некоторые примеры SQLite функций date, и узнаем, как использовать функцию date в SQLite.
Пример текущей даты
Вы можете получить текущую дату в SQLite, используя временную строку now с функцией date следующим образом:
1 2 |
sqlite> SELECT date('now'); Результат: '2019-01-25' (в формате YYYY-MM-DD) |
Пример первого дня месяца
Вы можете получить первый день месяца, используя функцию date следующим образом:
1 2 3 4 5 6 7 8 9 10 11 |
sqlite> SELECT date('2019-01-25', 'start of month'); Результат: '2019-01-01' sqlite> SELECT date('now', 'start of month'); Результат: '2019-01-01' (при условии, что текущая дата 2019-01-25) sqlite> SELECT date('2019-01-25', '-15 days'); Результат: '2019-01-10' sqlite> SELECT date('now', '-15 days'); Результат: '2019-01-10' (при условии, что текущая дата 2019-01-25) |
В этих примерах мы вычислили первый день месяца несколькими различными способами. Модификатор 'start of month' позволяет нам взять любое значение даты и вычислить первый день месяца для этой даты. Это включает использование timestring 'now'.
Мы также можем добавлять или вычитать дни к значению даты, используя модификатор 'NNN days'. В наших примерах мы вычли 15 дней из наших значений даты. Поскольку у нас было значение даты 2019-01-25, это возвращает десятый день месяца (то есть: 2019-01-10).
Пример последнего дня месяца
Вы можете получить последний день месяца, используя функцию date следующим образом:
1 2 3 4 5 6 7 8 9 10 11 |
sqlite> SELECT date('2019-01-25', 'start of month','+1 month', '-1 day'); Результат: '2019-01-31' sqlite> SELECT date('now', 'start of month','+1 month', '-1 day'); Результат: '2019-01-31' (при условии, что текущая дата 2019-01-25) sqlite> SELECT date('2019-01-25', '+15 days'); Результат: '2019-02-09' sqlite> SELECT date('now', '+15 days'); Результат: '2019-02-09' (при условии, что текущая дата 2019-01-25) |
В этих примерах мы вычислили последний день месяца несколькими различными способами. Сначала мы используем модификатор 'start of month' для вычисления первого дня месяца, затем добавляем 1 месяц и затем вычитаем 1 день.
Мы также можем добавлять или вычитать дни к значению даты, используя модификатор 'NNN day'. В наших примерах мы добавили 15 дней к нашим значениям даты. Поскольку у нас было значение даты 2019-01-25, это возвращает последний день месяца (то есть: 2019-01-31).
Пример сложения/вычитания лет
Вы можете использовать функцию date, чтобы манипулировать значением даты и добавлять или вычитать годы к нему. Это делается с помощью модификатора 'NNN years' с функцией date следующим образом:
1 2 3 4 5 6 7 8 |
sqlite> SELECT date('2019-01-25','+2 years'); Результат: '2021-01-25' sqlite> SELECT date('2019-01-25','-2 years'); Результат: '2017-01-25' sqlite> SELECT date('now','+5 years'); Результат: '2024-01-25' (при условии, что текущая дата 2019-01-25) |
В этих примерах мы использовали модификатор 'NNN years', чтобы прибавить 2 года в первом примере, вычесть 2 года во втором примере и добавить 5 лет к текущей дате в третьем примере.
Пример сложения/вычитания дней
Вы можете использовать функцию date, чтобы манипулировать значением даты и добавлять к ней или вычитать из нее дни . Это делается с помощью модификатора NNN days с функцией date следующим образом:
1 2 3 4 5 6 7 8 |
sqlite> SELECT date('2019-01-25','+7 days'); Результат: '2019-02-01' sqlite> SELECT date('2019-01-25','-7 days'); Результат: '2019-01-18' sqlite> SELECT date('now','+10 days'); Результат: '2019-02-04' (при условии, что текущая дата 2019-01-25) |
В этих примерах мы использовали модификатор 'NNN days', чтобы добавить 7 дней в первом примере, вычесть 7 дней во втором примере и добавить 10 дней к текущей дате в третьем примере.