Учебники

SQLite — дата и время

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

Sr.No. функция пример
1 дата (временная строка, модификаторы …) Возвращает дату в следующем формате: ГГГГ-ММ-ДД
2 время (временная строка, модификаторы …) Это возвращает время как ЧЧ: ММ: СС
3 datetime (временная строка, модификаторы …) Возвращает ГГГГ-ММ-ДД ЧЧ: ММ: СС
4 julianday (временные ряды, модификаторы …) Возвращает количество дней с полудня в Гринвиче 24 ноября 4714 г. до н.э.
5 strftime (временная строка, модификаторы …) Это возвращает дату, отформатированную в соответствии со строкой форматирования, указанной в качестве первого аргумента, отформатированного в соответствии с форматерами, поясненными ниже.

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

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

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

Sr.No. Строка времени пример
1 YYYY-MM-DD 2010-12-30
2 ГГГГ-ММ-ДД ЧЧ: ММ 2010-12-30 12:10
3 ГГГГ-ММ-ДД ЧЧ: ММ: СС.ССС 2010-12-30 12: 10: 04.100
4 ММ-ДД-ГГГГ ЧЧ: ММ 30-12-2010 12:10
5 HH: MM 12:10
6 ГГГГ-ММ-ДД Т ЧЧ: ММ 2010-12-30 12:10
7 НН: ММ: СС 12:10:01
8 ГГГГММДД ЧЧММСС 20101230 121001
9 сейчас 2013-05-07

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

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

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

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

  • ННН дней
  • NNN часов
  • NNN минут
  • NNN.NNNN секунд
  • NNN месяцев
  • NNN лет
  • начало месяца
  • начало года
  • начало дня
  • день недели N
  • unixepoch
  • местное время
  • универсальное глобальное время

Форматтеры

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

подмена Описание
% d День месяца, 01-31
% е Дробные секунды, СС.ССС
%ЧАС Час, 00-23
% J День года, 001-366
% J Юлианский номер дня, DDDD.DDDD
% м Месяц, 00-12
% M Минута 00-59
% s Секунды с 1970-01-01
% S Секунды, 00-59
% мас День недели 0-6 (0 — воскресенье)
% W Неделя года, 01-53
% Y Год, ГГГГ
%% % условное обозначение

Примеры

Давайте теперь попробуем различные примеры, используя подсказку SQLite. Следующая команда вычисляет текущую дату.

sqlite> SELECT date('now');
2013-05-07

Следующая команда вычисляет последний день текущего месяца.

sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31

Следующая команда вычисляет дату и время для данной метки времени UNIX 1092941466.

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

Следующая команда вычисляет дату и время для данной метки времени UNIX 1092941466 и компенсирует ваш местный часовой пояс.

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06

Следующая команда вычисляет текущую метку времени UNIX.

sqlite> SELECT strftime('%s','now');
1393348134

Следующая команда подсчитывает количество дней с момента подписания Декларации независимости США.

sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023

Следующая команда вычисляет количество секунд с определенного момента в 2004 году.

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572

Следующая команда вычисляет дату первого вторника октября текущего года.

sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01

Следующая команда вычисляет время с начала эпохи UNIX в секундах (например, strftime (‘% s’, ‘now’), за исключением того, что включает дробную часть).

sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598

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