SQL функции для работы со значениями даты и времени в базах данных SQLite
Помощь проекту:WMR: R288272666982WMZ: Z293550531456Яндекс.Деньги: 410011531129223Рубрика SQLite на сайте: http://zametkinapolyah.ru/zame....tki-o-mysql/sqlite/П блога в ВК: https://vk.com/zametkinapolyahТематическая группа в ВК: https://vk.com/zametki_bd-- ¬ременной литерал или строка времениYYYY-MM-DDYYYY-MM-DD HH:MMYYYY-MM-DD HH:MM:SSYYYY-MM-DD HH:MM:SS.SSSYYYY-MM-DDTHH:MMYYYY-MM-DDTHH:MM:SSYYYY-MM-DDTHH:MM:SS.SSSHH:MMHH:MM:SSHH:MM:SS.SSSnowDDDDDDDDDD-- Ўаблоны даты и времени%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 daysNNN hoursNNN minutesNNN.NNNN secondsNNN monthsNNN yearsstart of monthstart of yearstart of dayweekday Nunixepochlocaltimeutc-- ‘ункции дл¤ работы с датой и временем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');-- ¬ычисл¤ет врем¤ в секундах с начала эпохи UNIXSELECT (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