SQL функции для работы со значениями даты и времени в базах данных SQLite

Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223

Рубрика SQLite на сайте: http://zametkinapolyah.ru/zametki-o-mysql/sqlite/
Паблик блога в ВК: https://vk.com/zametkinapolyah
Тематическая группа в ВК: https://vk.com/zametki_bd

— ¬ременной литерал или строка времени

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
DDDDDDDDDD

— Ўаблоны даты и времени
%d день мес¤ца: 01Е31
%f доли секунд: SS.SSS
%H час: 00Е23
%j день года: 001Е366
%J ёлианска¤ дата
%m мес¤ц: 01Е12
%M минута: 00Е59
%s количество секунд с 1 ¤нвар¤ 1970 года
%S секунда: 00Е59
%w день недели: 0Е6 (0 Ч воскресенье)
%W недел¤ года: 00Е53
%Y год: 0000Е9999
%% %

— ћодификаторы дл¤ работы с датой и временем

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

— ‘ункции дл¤ работы с датой и временем

date(Е) strftime(С%Y-%m-%dТ, Е)
time(Е) strftime(С%H:%M:%SТ, Е)
datetime(Е) strftime(С%Y-%m-%d %H:%M:%SТ, Е)
julianday(Е) strftime(С%JТ, Е)

date(timestring, modifier, modifier, …)
time(timestring, modifier, modifier, …)
datetime(timestring, modifier, modifier, …)
julianday(timestring, modifier, modifier, …)
strftime(format, timestring, modifier, modifier, …)

— ѕримеры

–¬ычисл¤ет текущую дату
SELECT date(‘now’);
SELECT time(‘now’);
SELECT datetime(‘now’);
SELECT julianday(‘now’);

— ¬ычисл¤ет последний день текущего мес¤ца
date(timestring, modifier, modifier, …)
SELECT date(‘now’,’start of month’,’+1 month’,’-1 day’);

— ¬ычисл¤ет дату и врем¤ дл¤ 1092941466 секунд с 1970 года
SELECT datetime(1092941466, ‘unixepoch’);
— ¬ычисл¤ет дату и врем¤ дл¤ 1092941466 секунд с 1970 года и
— приводит к локальному времени.

SELECT datetime(1092941466, ‘unixepoch’, ‘localtime’);
— ¬ычисл¤ет текущее UNIX-врем¤

SELECT strftime(‘%s’,’now’);
— ¬ычисл¤ет количество дней прошедших с подписани¤ ƒекларации
— независимости —Ўј
SELECT julianday(‘now’) – julianday(‘1776-07-04’);
— ¬ычисл¤ет количество секунд с некоторого момент в 2004 году
SELECT strftime(‘%s’,’now’) – strftime(‘%s’,’2004-01-01 02:34:56′);

— ¬ычисл¤ет дату первого вторника окт¤бр¤ текущего года
SELECT date(‘now’,’start of year’,’+9 months’,’weekday 2′);

— ¬ычисл¤ет врем¤ в секундах с начала эпохи UNIX
SELECT (julianday(‘now’) – 2440587.5)*86400.0;

— ¬озможные ошибки

— SQLite использует функцию localtime_r() из стандартной библиотеки —и. Ёта функци¤ работает правильно только дл¤ дат между 1970 и 2037 годами.

— ‘ункции работают только с датами между 0000-01-01 00:00:00 и 9999-12-31 23:59:59 (ёлианские даты с 1721059.5 по 5373484.5). ƒл¤ дат за пределами этого диапазона, результат функций неопределен.

— —тоит учитывать особенности перехода на летнее врем¤ как в конкретных странах, так и в операционных системах.

— ¬се внутренние вычислени¤ происход¤т в соответствии с √ригорианским календарем.  роме того, предполагаетс¤, что каждый день продолжительностью ровно 86 400 секунд.
http://sqlite.org/lang_datefunc.html

ПРИСОЕДИНЯЙТЕСЬ
Поделиться

Кирилл Антонов

Канал для начинающего веб-разработчика. Здесь ты найдешь различные видео уроки о технологиях и программном обеспечение, которые используют веб-разработчики.



Обсуждение закрыто.