SQL — Функції дати

19

Від автора: сьогодні ми поговоримо про те, як працюють в SQL функції дати. У наступній таблиці наведено список всіх важливих функцій, пов’язаних з датою і часом, які доступні. Існують і інші, підтримувані різними СУБД. Даний список є функції, доступні в СУБД MySQL.

ADDDATE(). Додає дати

ADDTIME(). Додає час

CONVERT_TZ(). Перетворює з одного часового поясу в інший

CURDATE(). Повертає поточну дату

CURRENT_DATE(), CURRENT_DATE. Синоніми для CURDATE()

CURRENT_TIME(), CURRENT_TIME. Синоніми для CURTIME()

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP. Синоніми для NOW()

CURTIME(). Повертає поточний час

DATE_ADD(). Складає дві дати

DATE_FORMAT(). Задає потрібний формат дати

DATE_SUB(). Віднімає одну дату з іншої

DATE(). Витягує частина, що відноситься до дати, з виразу представляє дату або час і дату

DATEDIFF(). Віднімає одну дату з іншої

DAY(). Синонім для DAYOFMONTH()

DAYNAME(). Повертає день тижня

DAYOFMONTH(). Повертає день місяця (1-31)

DAYOFWEEK(). Повертає індекс дні тижня аргументу

DAYOFYEAR(). Повертає номер дня в році (1-366)

EXTRACT. Витягує частина, що відноситься до дати

FROM_DAYS(). Перетворює номер дня в дату

FROM_UNIXTIME(). Форматує дату як тимчасову мітку UNIX

HOUR(). Витягує годину

LAST_DAY. Повертає останній день місяця для аргументу

LOCALTIME(), LOCALTIME. Синонім для NOW()

LOCALTIMESTAMP, LOCALTIMESTAMP (). Синонім для NOW()

MAKEDATE(). Створює дату із року і дня року

MAKETIME. MAKETIME(). MICROSECOND(). Повертає мікросекунди з аргументу

MINUTE(). Повертає хвилини з аргументу

MONTH(). Повернення місяця з дати

MONTHNAME(). Повертає назву місяця

NOW(). Повертає поточну дату і час

PERIOD_ADD(). Додає період до року-місяцю

PERIOD_DIFF(). Повертає кількість місяців між періодами

QUARTER(). Повертає квартал з аргументу

SEC_TO_TIME(). Перетворює секунди в формат «HH: MM: SS»

SECOND(). Повертає секунди (0-59)

STR_TO_DATE(). Перетворює рядок у дату

SUBDATE(). При виклику з трьома аргументами синонім DATE_SUB()

SUBTIME(). Віднімає час

SYSDATE(). Повертає час виконання функції

TIME_FORMAT(). Задає формат часу

TIME_TO_SEC(). Повертає аргумент, перетворений в секунди

TIME(). Витягує частина, що відноситься до часу, переданого вираження

TimeDiff(). Віднімає час

TIMESTAMP(). З одним аргументом ця функція повертає вираз дати або дати і часу. З двома аргументами — складає ці два аргументи

TIMESTAMPADD(). Додає інтервал до висловом дати і часу

TIMESTAMPDIFF(). Віднімає інтервал з виразу дати і часу

TO_DAYS(). Повертає аргумент дати, перетворений у дні

UNIX_TIMESTAMP(). Повертає тимчасову мітку UNIX

UTC_DATE(). Повертає поточну дату UTC

UTC_TIME(). Повертає поточний час UTC

UTC_TIMESTAMP(). Повертає поточну дату і час UTC

WEEK(). Повертає номер тижня

WEEKDAY(). Повертає індекс дні тижня

WEEKOFYEAR(). Повертає календарний номер тижня (1-53)

YEAR(). Повертає рік

YEARWEEK(). Повертає рік і тиждень

ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)

При виклику з другим аргументом, заданим у вигляді INTERVAL, функція ADDDATE() є синонімом DATE_ADD(). Пов’язана функція SUBDATE() є синонімом DATE_SUB(). Інформацію про аргумент блоку INTERVAL див. у розділі DATE_ADD().

SQL — Функції дати

При виклику з другим аргументом, заданим в днях, MySQL розглядає це як ціле число днів для додавання в вираз.

SQL — Функції дати

ADDTIME(expr1,expr2)

ADDTIME () додає expr2 до expr1 та повертає результат. Expr1 є вираженням часу або дати і часу, в той час як expr2 є вираженням часу.

SQL — Функції дати

CONVERT_TZ(dt,from_tz,to_tz)

Перетворює значення дати і часу dt з часового поясу, заданого в from_tz, в часовий пояс у to_tz, і повертає отримане значення. Ця функція повертає NULL, якщо аргументи недійсні.

SQL — Функції дати

CURDATE()

Повертає поточну дату як значення в форматі YYYY-MM-DD» або YYYYMMDD, в залежності від того, чи використовується ця функція у строковому або в числовому контексті.

SQL — Функції дати

CURRENT_DATE і CURRENT_DATE()

CURRENT_DATE і CURRENT_DATE() є синонімами для CURDATE()

CURTIME()

Повертає поточний час як значення в форматі HH: MM: SS» або HHMMSS, залежно від того, використовується функція у строковому або в числовому контексті. Значення виражається для поточного часового поясу.

SQL — Функції дати

CURRENT_TIME і CURRENT_TIME()

CURRENT_TIME і CURRENT_TIME() є синонімами для CURTIME().

CURRENT_TIMESTAMP і CURRENT_TIMESTAMP()

CURRENT_TIMESTAMP і CURRENT_TIMESTAMP() є синонімами для NOW().

DATE(expr)

Витягує частина, що відноситься до дати, з виразу дати або дати і часу expr.

SQL — Функції дати

DATEDIFF(expr1,expr2)

DATEDIFF() повертає expr1.expr2, виражене як кількість днів між двома датами. І expr1, і expr2 є виразами дати або дати і часу. У розрахунках використовуються лише частини відносяться до дати.

SQL — Функції дати

DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)

Ці функції виконують арифметичні операції з датами. date представлено як значення DATETIME або DATE, вказує початкову дату. expr являє собою вираз, який визначає значення інтервалу, який потрібно додати або відняти з початкової дати. expr — це рядок; вона може починатися з « — для негативних інтервалів.

unit є ключовим словом, вказуючим одиниці вимірювання для вираження. Ключове слово INTERVAL і позначення одиниць не чутливі до регістру. В наступній таблиці показано очікувана форма аргументу expr для кожного значення одиниці вимірювання.

SQL — Функції дати

Значення QUARTER і WEEK доступні в MySQL, починаючи з версії 5.0.0.

SQL — Функції дати

DATE_FORMAT (date format)

Ця команда задає формат значення date відповідно до зазначеної рядком format. У рядку format можуть використовуватися наступні покажчики. Перед покажчиками формату необхідно додавати символ ‘%’.

%a. Скорочена назва дня тижня (Sun..Sat)

%b. Скорочена назва місяця (Jan..Dec)

%с. Числове позначення місяці (0…12)

%D. День місяця з англійським суфіксом (0, 1, 2, 3,.)

%d. Числове позначення дня місяця (00..31)

%е. Числове позначення дня місяця (00..31)

%f. Мікросекунди (000000..999999)

%H. Годину (00..23)

%h. Година (01..12)

%I. Годину (01..12)

%i. Числове позначення хвилин (00..59)

%J. День року (001..366)

%k. Година (0..23)

%l. Годину (1..12)

%M. Назва місяця (January..December)

%м. Числове позначення місяця (00..12)

%р. AM або PM

%r. Час, 12-годинний формат (чч: мм: сс, за яким слідують AM або PM)

%S. Секунди (00..59)

%s. Секунди (00..59)

%Т. Час, 24-годинний формат (чч: мм: сс)

%U. Тиждень (00..53), де неділю — перший день тижня

%u. Тиждень (00..53), де понеділок — перший день тижня

%V. Тиждень (01..53), де неділю — перший день тижня; використовується разом з %X

%v. Тиждень (01..53), де понеділок — перший день тижня; використовується разом з %x

%W. Назву дня тижня (Sunday..Saturday)

%w. День тижня (0=Sunday..6=Saturday)

%X. Рік для тижні, де перший день тижня — неділя, число з чотирьох цифр; використовується разом з %V

%x. Рік для тижні, де перший день тижня — понеділок, число з чотирьох цифр; використовується разом з %V

%Y. Рік, число, чотири цифри

%y. Числове позначення року (дві цифри)

%%. Буквально символ %

%x. x, для всіх .x., не перерахованих вище

SQL — Функції дати

DATE_SUB(date,INTERVAL expr unit)

Аналогічно функції DATE_ADD ().

DAY(date)

DAY() є синонімом функції DAYOFMONTH().

DAYNAME(date)

Повертає день тижня для вказаної дати.

SQL — Функції дати

DAYOFMONTH(date)

Повертає день місяця для вказаної дати в діапазоні від 0 до 31.

SQL — Функції дати

DAYOFWEEK(date)

Повертає індекс дня тижня (1 = Sunday, 2 = Monday, ., 7 = Saturday). Ці значення індексу відповідають стандарту ODBC.

SQL — Функції дати

DAYOFYEAR(date)

Повертає день року для вказаної дати в діапазоні від 1 до 366.

SQL — Функції дати

EXTRACT(unit FROM date)

Функція EXTRACT() використовує ті ж типи покажчиків одиниць вимірювання, що і DATE_ADD() або DATE_SUB(), але не виконує арифметичні операції з датами, а витягує з дати частина відноситься до покажчика одиниць вимірювання.

SQL — Функції дати

FROM_DAYS(N)

Повертається значення DATE з урахуванням кількості днів N.

SQL — Функції дати

Примітка. Використовуйте FROM_DAYS() для старих дат обережно. Функція не призначена для роботи із значеннями дат до введення григоріанського календаря (1582).

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)

Повертає подання аргументу unix_timestamp як значення в форматі YYYY-MM-DD HH: MM: SS або YYYYMMDDHHMMSS» в залежності від того, чи використовується ця функція у строковому або в числовому контексті. Значення виражається в поточному часовому поясі. Параметр unix_timestamp є внутрішнім значенням мітки часу, що створюється функцією UNIX_TIMESTAMP().

Якщо format зазначено, результат форматується згідно з рядком format, яка використовується так само, як описано в розділі DATE_FORMAT().

SQL — Функції дати

HOUR(time)

Повертає годинник з зазначеного часу. Діапазон повертається значення становить від 0 до 23. Однак діапазон значень TIME насправді набагато більше, тому HOUR може повертати значення, що перевищують 23.

SQL — Функції дати

LAST_DAY(date)

Приймає значення дати або дати і часу і повертає значення, відповідне останнього дня місяця. Повертає NULL, якщо аргумент недійсний.

SQL — Функції дати

LOCALTIME і LOCALTIME()

LOCALTIME і LOCALTIME() є синонімами для NOW().

LOCALTIMESTAMP і LOCALTIMESTAMP()

LOCALTIMESTAMP і LOCALTIMESTAMP() є синонімами для NOW().

MAKEDATE(year,dayofyear)

Повертає значення заданого року і дня року. Значення dayofyear повинно бути більше 0 або результат буде NULL.

SQL — Функції дати

MAKETIME(hour,minute,second)

Повертає значення часу, розраховане з аргументів hour, minute і second.

SQL — Функції дати

MICROSECOND(expr)

Повертає мікросекунди з виразу часу або вираження datetime(expr) у вигляді числа в діапазоні від 0 до 999999.

SQL — Функції дати

MINUTE(time)

Повертає хвилини для зазначеного часу, в діапазоні від 0 до 59.

SQL — Функції дати

MONTH(date)

Повертає місяць зазначеної дати в діапазоні від 0 до 12.

SQL — Функції дати

MONTHNAME(date)

Повертає повну назву місяця для вказаної дати.

SQL — Функції дати

NOW()

Повертає поточну дату і час як значення в форматі YYYY-MM-DD HH: MM: SS» або YYYYMMDDHHMMSS, залежно від того, використовується функція у строковому або числовому контексті. Це значення виражається в поточному часовому поясі.

SQL — Функції дати

PERIOD_ADD(P,N)

Додає N місяців до періоду P (у форматі YYMM або YYYYMM). Повертає значення в форматі YYYYMM. Зверніть увагу, що аргумент періоду P не є значенням дати.

SQL — Функції дати

PERIOD_DIFF(P1,P2)

Повертає кількість місяців між періодами P1 і P2. Періоди P1 і P2 повинні вказуватися у форматі YYMM або YYYYMM. Зверніть увагу, що аргументи періодів P1 і P2 не є значеннями дати.

SQL — Функції дати

QUARTER(date)

Повертає квартал року для вказаної дати в діапазоні від 1 до 4.

SQL — Функції дати

SECOND(time)

Повертає значення секунд часу в діапазоні від 0 до 59.

SQL — Функції дати

SEC_TO_TIME(seconds)

Повертає аргумент seconds, перетворений в години, хвилини і секунди у форматі HH: MM: SS» або HHMMSS, залежно від того, використовується функція у строковому або числовому контексті.

SQL — Функції дати

STR_TO_DATE(str,format)

Це инверсивная функція до функції DATE_FORMAT(). Вона приймає рядок str і рядок формату format. Функція STR_TO_DATE() повертає значення DATETIME, якщо рядок формату містить дату і час. В іншому випадку вона повертає значення DATE або TIME, якщо рядок містить лише дату або час.

SQL — Функції дати

SUBDATE(date,INTERVAL expr unit) і SUBDATE(expr,days)

Якщо SUBDATE() викликається з другим аргументом, заданим у вигляді INTERVAL, функція є синонімом DATE_SUB(). Інформацію про аргумент INTERVAL дивіться у розділі DATE_ADD().

SQL — Функції дати

SUBTIME(expr1,expr2)

Функція SUBTIME() повертає expr1. expr2 виражається як значення в тому ж форматі, що і expr1. Значення expr1 є вираженням часу або дати і часу, а значення expr2 є вираженням часу.

SQL — Функції дати

SYSDATE()

Повертає поточну дату і час як значення в форматі YYYY-MM-DD HH: MM: SS» або YYYYMMDDHHMMSS, залежно від того, використовується функція у строковому або в числовому контексті.

SQL — Функції дати

TIME(expr)

Витягує частина, що відноситься до часу, вираз expr і повертає його у вигляді рядка.

SQL — Функції дати

TIMEDIFF(expr1,expr2)

Функція TIMEDIFF() повертає expr1 . expr2 виражається як значення часу. Значення expr1 і expr2 являють собою вираження часу або дати і часу, але обидва вони повинні бути одного типу.

SQL — Функції дати

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

З одним зазначеним аргументом ця функція повертає вираз дати або дати і часу expr, як значення дати і часу. З двома аргументами вона додає вираз часу expr2 до висловом дати або дати і часу expr1 і повертає результат як значення дати і часу.

SQL — Функції дати

TIMESTAMPADD(unit,interval,datetime_expr)

Ця функція додає ціле вираз interval до висловом дати або часу datetime_expr. Одиниці вимірювання інтервалу задаються аргументом unit, який може приймати одне з наступних значень:

FRAC_SECOND

SECOND, MINUTE

HOUR, DAY

WEEK

MONTH

QUARTER or

YEAR

Значення unit може бути зазначено з використанням одного з ключових слів, як було показано вище, або з префіксом SQL_TSI_. Наприклад, DAY і SQL_TSI_DAY є дійсними значеннями.

SQL — Функції дати

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Повертає цілочисельну різницю між виразами дати або дати і часу datetime_expr1 і datetime_expr2. Одиниці вимірювання результату задаються аргументом unit. Дійсними для аргументу unit є ті ж значення, які були перераховані в описі функції TIMESTAMPADD().

SQL — Функції дати

TIME_FORMAT(time format)

Ця функція використовується так само, як і функція DATE_FORMAT(), але рядок format може містити покажчики формату тільки для годин, хвилин і секунд.

Якщо значення часу містить частину, що відноситься до годинника, яка більше 23, покажчики формату годин %H %k дають значення, більше, ніж звичайний діапазон від 0 до 23. Інші покажчики формату годин дають значення години 12 по модулю.

SQL — Функції дати

TIME_TO_SEC(time)

Повертає аргумент time, перетворений в секунди.

SQL — Функції дати

TO_DAYS(date)

Повертає номер дні (кількість днів з 0-го року) для заданої дати date.

SQL — Функції дати

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

Якщо ця функція викликається без аргументів, вона повертає тимчасову мітку Unix (секунди з «1970-01-01 00:00:00» UTC), як ціле позитивне число. Якщо UNIX_TIMESTAMP() викликається з аргументом date, вона повертає значення аргументу, виражене у секундах з «1970-01-01 00:00:00» UTC. date може бути рядком DATE рядком DATETIME, TIMESTAMP або числом у форматі YYMMDD або YYYYMMDD.

SQL — Функції дати

UTC_DATE, UTC_DATE()

Повертає поточну дату UTC як значення в форматі YYYY-MM-DD» або YYYYMMDD, в залежності від того, чи використовується ця функція у строковому або числовому контексті.

SQL — Функції дати

UTC_TIME, UTC_TIME()

Повертає поточний час UTC як значення в форматі HH: MM: SS» або HHMMSS, залежно від того, використовується функція у строковому або числовому контексті.

SQL — Функції дати

UTC_TIMESTAMP, UTC_TIMESTAMP()

Повертає поточну дату і час UTC як значення «YYYY-MM-DD HH: MM: SS» або у форматі YYYYMMDDHHMMSS, в залежності від того, чи використовується ця функція у строковому або в числовому контексті.

SQL — Функції дати

WEEK(date[,режим])

Ця функція повертає номер тижня для вказаної дати date. Форма WEEK() з двома аргументами дозволяє вказати, чи буде тиждень починатися в неділю або в понеділок, і чи має значення, що повертається перебувати в діапазоні від 0 до 53 або від 1 до 53. Якщо аргумент mode вказано, використовується значення системної змінної default_week_format

SQL — Функції дати

SQL — Функції дати

WEEKDAY(date)

Повертає індекс дня тижня для вказаної дати date (0 = понеділок, 1 = вівторок, 6 = неділю).

SQL — Функції дати

WEEKOFYEAR(date)

Повертає календарну тиждень для заданої дати date як число в діапазоні від 1 до 53. WEEKOFYEAR() — це функція сумісності, еквівалентна WEEK(date,3).

SQL — Функції дати

YEAR(date)

Повертає рік для заданої дати date в діапазоні від 1000 до 9999 або 0 для дати .zero.

SQL — Функції дати

YEARWEEK(date), YEARWEEK(date,mode)

Повертає рік і тиждень для заданої дати date. Параметр mode працює точно так само, як аргумент mode для функції WEEK(). Рік у результаті може відрізнятися від року в аргументі дати першого і останнього тижня року.

SQL — Функції дати

Примітка. Номер тижня відрізняється від того, що поверне функція WEEK() (0) для необов’язкових аргументів 0 або 1, так як WEEK() поверне тиждень в контексті даного року.