sql количество дней в месяце
Как определить количество дней в месяце в SQL Server?
Мне нужно определить количество дней в месяце для заданной даты в SQL Server.
Есть встроенная функция? Если нет, то что мне следует использовать в качестве пользовательской функции?
Вы можете использовать следующее с первым днем указанного месяца:
Чтобы он работал на любое свидание:
В SQL Server 2012 вы можете использовать EOMONTH (Transact-SQL), чтобы получить последний день месяца, а затем вы можете использовать DAY (Transact-SQL), чтобы получить количество дней в месяце.
Самое элегантное решение: работает для любого @DATE
Добавьте его в функцию или просто используйте в строке. Это отвечает на исходный вопрос без лишнего мусора в других ответах.
примеры дат из других ответов:
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,’1/31/2009′),0))) Возвращает 31
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,’2404-feb-15′),0))) Возвращает 29
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,’2011-12-22′),0))) Возвращает 31
Я бы посоветовал:
Этот код дает вам количество дней в текущем месяце:
Измените getdate() дату, для которой нужно считать дни.
Решение 1. Найдите количество дней в том месяце, в котором мы сейчас находимся
Решение 2. Найдите количество дней в заданной комбинации месяц-год
Вам нужно добавить функцию, но она простая. Я использую это:
Приятно Простой и не требует создания каких-либо функций Работает нормально
Вам нужно создать функцию, но это для вашего удобства. Она отлично работает, и я никогда не сталкивался с ошибочными вычислениями с использованием этой функции.
Как это работает: вычитание номера дня даты из самой даты дает последний день предыдущего месяца. Итак, вам нужно добавить один месяц к заданной дате, вычесть номер дня и получить дневную составляющую результата.
Я поддержал Мехрдада, но это тоже работает. 🙂
Я знаю, что это старый вопрос, но я подумал, что поделюсь тем, что использую.
Их можно объединить, чтобы создать единую функцию для получения количества дней в месяце, если это необходимо.
Красиво ‘n’ Простой и не требует создания каких-либо функций
Ответ Мехрдада Афшари является наиболее точным, кроме обычного, этот ответ основан на формальном математическом подходе, представленном Кертисом Макинроем в его блоге https://cmcenroe.me/2014/12/05/days-in-month-formula.html
Чтобы получить нет. дней в месяце мы можем напрямую использовать Day (), доступный в SQL.
Перейдите по ссылке, опубликованной в конце моего ответа для SQL Server 2005/2008.
Следующий пример и результат взяты из SQL 2012
Результат в SQL Server SSMS
Когда используется EOMONTH, какой бы формат даты мы ни использовали, он конвертируется в формат DateTime SQL-сервера. Тогда вывод даты EOMONTH () будет 2016-12-31 с 2016 как Год, 12 как Месяц и 31 как Дни. Этот вывод при передаче в Day () дает вам общее количество дней в месяце.
Если мы хотим получить мгновенный результат для проверки, мы можем напрямую запустить приведенный ниже код,
Как определить количество дней в месяце в SQL Server?
Мне нужно определить количество дней в месяце для данной даты в SQL Server.
Есть ли встроенная функция? Если нет, что я должен использовать в качестве пользовательской функции?
Вы можете использовать следующее с первым днем указанного месяца:
Чтобы это работало на каждую дату:
Самое элегантное решение: работает для любого @DATE
Добавьте его в функцию или просто используйте его в строке. Это отвечает на исходный вопрос без лишнего мусора в других ответах.
примеры дат из других ответов:
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,’1/31/2009′),0))) возвращает 31
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,’2404-feb-15′),0))) возвращает 29
SELECT DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,’2011-12-22′),0))) возвращает 31
Я бы предложил:
Этот код возвращает количество дней в текущем месяце:
Измените getdate() на дату, на которую нужно рассчитывать дни.
Nice Simple и не требует создания каких-либо функций Work Fine
Вам нужно создать функцию, но это для вашего удобства. Он отлично работает, и я никогда не сталкивался с ошибочными вычислениями, использующими эту функцию.
Как это устроено: вычитание числа дня из даты само дает дату последнего дня предыдущего месяца. Таким образом, вам нужно добавить один месяц к указанной дате, вычесть номер дня и получить дневную составляющую результата.
Решение 1: найдите количество дней в любом месяце, в котором мы сейчас находимся
Решение 2: Найти количество дней в данном месячном комбо
Вам нужно добавить функцию, но она простая. Я использую это:
Nice ‘n’ Simple и не требует создания каких-либо функций
Я знаю, что этот вопрос старый, но я решил поделиться тем, что я использую.
Их можно объединить, чтобы создать единственную функцию для получения количества дней в месяце, если это необходимо.
Ответ Мехрдада Афшари является наиболее точным, помимо обычного, этот ответ основан на формальном математическом подходе, представленном Кертисом Макинрой в его блоге https://cmcenroe.me/2014/12/05/days-in-month-formula. HTML
Чтобы получить нет. дней в месяце мы можем напрямую использовать Day (), доступный в SQL.
Перейдите по ссылке, размещенной в конце моего ответа на SQL Server 2005/2008.
Следующий пример и результат взяты из SQL 2012
Результат в SQL Server SSMS
Если мы хотим получить мгновенный результат проверки, мы можем напрямую запустить приведенный ниже код,
Типы данных и функции даты и времени (Transact-SQL)
В разделах этой статьи представлен обзор всех типов данных и функций даты и времени Transact-SQL.
Типы данных даты и времени
Типы данных даты и времени Transact-SQL перечислены в следующей таблице:
Тип данных | Формат | Диапазон | Точность | Объем памяти (в байтах) | Определяемая пользователем точность в долях секунды | Смещение часового пояса |
---|---|---|---|---|---|---|
time | чч:мм:сс[.ннннннн] | От 00:00:00.0000000 до 23:59:59.9999999 | 100 наносекунд | от 3 до 5 | Да | Нет |
date | ГГГГ-ММ-ДД | От 0001-01-01 до 31.12.99 | 1 день | 3 | Нет | Нет |
smalldatetime | ГГГГ-ММ-ДД чч:мм:сс | От 01.01.1900 до 06.06.2079 | 1 минута | 4 | нет | Нет |
datetime | ГГГГ-ММ-ДД чч:мм:сс[.ннн] | От 01.01.1753 до 31.12.9999 | 0,00333 секунды | 8 | Нет | Нет |
datetime2 | ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] | От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 | 100 наносекунд | От 6 до 8 | Да | Нет |
datetimeoffset | ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] [+|-]чч:мм | От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 (время в формате UTC) | 100 наносекунд | От 8 до 10 | Да | Да |
Тип данных Transact-SQL rowversion не относится к типам данных даты и времени. Тип данных timestamp является устаревшим синонимом rowversion.
Функции даты и времени
В следующих таблицах приводятся функции даты и времени Transact-SQL. Дополнительные сведения о детерминизме см. в статье Детерминированные и недетерминированные функции.
Функции, возвращающие значения системной даты и времени
Transact-SQL наследует все значения системной даты и времени от операционной системы компьютера, на котором работает экземпляр SQL Server.
Высокоточные функции системной даты и времени
SQL Server 2019 (15.x) получает значения даты и времени с помощью функции GetSystemTimeAsFileTime() Windows API. Точность зависит от физического оборудования и версии Windows, в которой запущен экземпляр SQL Server. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс. Точность может быть определена с помощью метода GetSystemTimeAdjustment() API-интерфейса Windows.
SQL функции даты и времени
Приветствую Вас, уважаемые читатели блога webcodius.ru. В базе данных часто требуется хранить различные данные связанные с датой и временем. Это может быть дата добавления информации, дата регистрации пользователя, время последней автоизации и другие данные. В языке SQL есть множество функций связанных с датой и временем, сегодня их и рассмотрим.
Все ниже рассмотренные функции работают с календарными типами данных.
Получение текущей даты и времени.
Чтобы получить текущую дату и время используется функция NOW ().
SELECT NOW ()
Результат: 2015-09-25 14:42:53
Для получения только текущей даты есть функция CURDATE ().
SELECT CURDATE ()
Результат: 2015-09-25
И функция CURTIME (), которая возвращает только текущее время:
SELECT CURTIME ()
Результат: 14:42:53
Функции CURDATE () и NOW () удобно использовать для добавления в базу данных записей, для которых требуется хранить дату добавления. Например, при добавлении статьи на сайт хорошо бы хранить ее дату публикации. Тогда запрос на добавление статьи в базу будет примерно таким:
INSERT INTO posts (id_post, text_post, date_publication) VALUES (1, ‘текст статьи’, NOW ());
Прибавление и вычитание дат и времени
Функция ADDDATE (date, INTERVAL value) прибавляет к дате date значение value и возвращает полученное значение. В качестве value могут выступать следующие значения:
а также их комбинации:
SELECT ADDDATE (‘2015-09-28 10:30:20’, INTERVAL 1 DAY)
Результат: 2015-09-29 10:30:20
SELECT ADDDATE (‘2015-09-28 10:30:20’, INTERVAL ‘3 1:20’ DAY_MINUTE)
Результат: 2015-10-01 11:50:20
SELECT SUBDATE (‘2015-09-28 10:30:20’, INTERVAL 20 HOUR)
Результат: 2015-09-27 14:30:20
Функция PERIOD_ADD (period, n) прибавляет к значению period n месяцев. Значение период должно быть представлено в формате YYYYMM (например сентябрь 2015 года будет 201509). Пример:
SELECT PERIOD_ADD (201509, 4)
Результат: 201601
SELECT TIMESTAMPADD (QUARTER, 1, ‘2015-09-28’)
Результат: 2015-12-28
Функция SUBTIME (date, time) вычитает из даты date время time. Пример:
SELECT SUBTIME (‘2015-09-28 10:30:20′, ’50:20:19’)
Результат: 2015-09-26 08:10:01
Вычисление интервала между датами
Функция DATEDIFF (date1, date2) вычисляет разницу в днях между двумя датами, при этом часы, минуты и секунды при указании дат игнорируются. Пример:
SELECT DATEDIFF (‘2015-09-28 00:00:20’, ‘2015-09-27 23:40:20’)
Результат: 1
С помощью этой функции легко определить сколько дней прошло с даты публикации статьи:
SELECT DATEDIFF (CURDATE (), date_publication) FROM posts WHERE id_post = 1
SELECT PERIOD_DIFF (201509, 201501)
Результат: 9
SELECT TIMESTAMPDIFF (HOUR, ‘2015-09-28 10:30:20’, ‘2015-09-28 19:50:20’)
Результат: 9
Получение различных форматов даты и времени и другой информации
Функция DATE (datetime) возвращает дату, отсекая время. Пример:
SELECT DATE (‘2015-09-28 10:30:20’)
Результат: 2015-09-28
Функция TIME (datetime) возвращает время, отсекая дату. Пример:
SELECT TIME (‘2015-09-28 10:30:20’)
Результат: 10:30:20
TIMESTAMP (‘2015-09-28’)
Результат: 2015-09-28 00:00:00
DAY (date) и DAYOFMONTH (date). Функции-синонимы, которые возвращают порядковый номер дня месяца. Пример:
SELECT DAY (‘2015-09-28’), DAYOFMONTH (‘2015-09-28’)
Результат: 28 | 28
Функции DAYNAME (date), DAYOFWEEK (date) и WEEKDAY (date). Первая функция возвращает название дня недели, вторая — номер дня недели (отсчет от 1 — воскресенье до 7 — суббота), третья также номер дня недели только другой отсчет(отсчет от 0 — понедельник, до 6 — воскресенье). Пример:
SELECT DAYNAME (‘2015-09-28’), DAYOFWEEK (‘2015-09-28’), WEEKDAY (‘2015-09-28’)
Результат: Monday 2 | 0
Функции WEEK (date) и WEEKOFYEAR (datetime). Обе функции возвращают номер недели в году, только у первой неделя начинается с воскресенья, а у второй с понедельника. Пример:
SELECT WEEK (‘2015-09-28 10:30:20’), WEEKOFYEAR (‘2015-09-28 10:30:20’)
Результат: 39 | 40
Функция MONTH (date) возвращает числовое значение месяца (от 1 до 12), а MONTHNAME (date) название месяца. Пример:
SELECT MONTH (‘2015-09-28 10:30:20’), MONTHNAME (‘2015-09-28 10:30:20’)
Результат: 9 | September
Функция QUARTER (date) возвращает номер квартала года (от 1 до 4). Пример:
SELECT QUARTER (‘2015-09-28 10:30:20’)
Результат: 3
Функция YEAR (date) возвращает значение года (от 1000 до 9999). Пример:
SELECT YEAR (‘2015-09-28 10:30:20’)
Результат: 2015
Функция DAYOFYEAR (date) возвращает порядковый номер дня в году (от 1 до 366). Прмиер:
SELECT DAYOFYEAR (‘2015-09-28 10:30:20’)
Результат: 271
Функция HOUR (datetime) возвращает значение часа (от 0 до 23). Пример:
SELECT HOUR (‘2015-09-28 10:30:20’)
Результат: 10
Функция MINUTE (datetime) возвращает значение минут (от 0 до 59). Пример:
SELECT MINUTE (‘2015-09-28 10:30:20’)
Результат: 30
Функция SECOND (datetime) возвращает значение секунд (от 0 до 59). Пример:
SELECT SECOND (‘2015-09-28 10:30:20’)
Результат: 20
SELECT EXTRACT (YEAR FROM ‘2015-09-28 10:30:20’), EXTRACT (MONTH FROM ‘2015-09-28 10:30:20’), EXTRACT (DAY FROM ‘2015-09-28 10:30:20’), EXTRACT (HOUR FROM ‘2015-09-28 10:30:20’), EXTRACT (MINUTE FROM ‘2015-09-28 10:30:20’), EXTRACT (SECOND FROM ‘2015-09-28 10:30:20’)
Результат: 2015 | 9 | 28 | 10 | 30 | 20
Взаимообратные функции TO_DAYS (date) и FROM_DAYS (n). Первая преобразует дату в количество дней, прошедших с нулевого года. Вторая, наоборот, принимает число дней, прошедших с нулевого года и преобразует их в дату. Пример:
SELECT TO_DAYS (‘2015-09-28 10:30:20’), FROM_DAYS (736234)
Результат: 736234 | 2015-09-28
Взаимообратные функции UNIX_TIMESTAMP (date) и FROM_UNIXTIME (n). Первая преобразует дату в количество секунд, прошедших с 1 января 1970 года. Вторая, наоборот, принимает число секунд, с 1 января 1970 года и преобразует их в дату. Пример:
SELECT UNIX_TIMESTAMP (‘2015-09-28 10:30:20’), FROM_UNIXTIME (1443425420)
Результат: 1443425420 | 2015-09-28 10:30:20
Взаимообратные функции TIME_TO_SEC (time) и SEC_TO_TIME (n). Первая преобразует время в количество секунд, прошедших от начала суток. Вторая, наоборот, принимает число секунд с начала суток и преобразует их во время. Пример:
SELECT TIME_TO_SEC (’10:30:20′), SEC_TO_TIME (37820)
Результат: 37820 | 10:30:20
Функция MAKEDATE (year, n) принимает год year и номер дня в году n и преобразует их в дату. Пример:
SELECT MAKEDATE (2015, 271)
Результат: 2015-09-28
SQL — Функции даты
Дата публикации: 2017-12-13
От автора: сегодня мы поговорим о том, как работают в SQL функции даты. В следующей таблице приведен список всех важных функций, связанных с датой и временем, которые доступны. Существуют и другие, поддерживаемые различными СУБД. Данный список представляет функции, доступные в СУБД MySQL.
ADDDATE(). Добавляет даты
ADDTIME(). Добавляет время
CONVERT_TZ(). Преобразует из одного часового пояса в другой
CURDATE(). Возвращает текущую дату
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
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().
При вызове со вторым аргументом, заданным в днях, MySQL рассматривает это как целое число дней для добавления в выражение.
ADDTIME(expr1,expr2)
ADDTIME () добавляет expr2 к expr1 и возвращает результат. Expr1 является выражением времени или даты и времени, в то время как expr2 является выражением времени.
CONVERT_TZ(dt,from_tz,to_tz)
Преобразует значение даты и времени dt из часового пояса, заданного в from_tz, в часовой пояс, заданный в to_tz, и возвращает полученное значение. Эта функция возвращает NULL, если аргументы недействительны.
CURDATE()
Возвращает текущую дату как значение в формате «YYYY-MM-DD» или YYYYMMDD, в зависимости от того, используется ли эта функция в строковом или в числовом контексте.
CURRENT_DATE и CURRENT_DATE()
CURRENT_DATE и CURRENT_DATE() являются синонимами для CURDATE()
CURTIME()
Возвращает текущее время как значение в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или в числовом контексте. Значение выражается для текущего часового пояса.
CURRENT_TIME и CURRENT_TIME()
CURRENT_TIME и CURRENT_TIME() являются синонимами для CURTIME().
CURRENT_TIMESTAMP и CURRENT_TIMESTAMP()
CURRENT_TIMESTAMP и CURRENT_TIMESTAMP() являются синонимами для NOW().
DATE(expr)
Извлекает часть, относящуюся к дате, из выражения даты или даты и времени expr.
DATEDIFF(expr1,expr2)
DATEDIFF() возвращает expr1.expr2, выраженное как количество дней между двумя датами. И expr1, и expr2 являются выражениями даты или даты и времени. В расчетах используются только части относящиеся к дате.
DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)
Эти функции выполняют арифметические операции с датами. date представлено как значение DATETIME или DATE, указывающее начальную дату. expr представляет собой выражение, определяющее значение интервала, который нужно добавить или вычесть из исходной даты. expr — это строка; она может начинаться с «-» для отрицательных интервалов.
unit является ключевым словом, указывающим единицы измерения для выражения. Ключевое слово INTERVAL и обозначение единиц не чувствительны к регистру. В следующей таблице показана ожидаемая форма аргумента expr для каждого значения единицы измерения.
Значения QUARTER и WEEK доступны в MySQL начиная с версии 5.0.0.
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)
%i. Числовое обозначение минут (00..59)
%J. День года (001..366)
%M. Название месяца (January..December)
%м. Числовое обозначение месяца (00..12)
%r. Время, 12-часовой формат (чч: мм: сс, за которым следуют AM или PM)
%Т. Время, 24-часовой формат (чч: мм: сс)
%U. Неделя (00..53), где воскресенье — первый день недели
%u. Неделя (00..53), где понедельник — первый день недели
%V. Неделя (01..53), где воскресенье — первый день недели; используется вместе с %X
%v. Неделя (01..53), где понедельник — первый день недели; используется вместе с %x
%W. Название дня недели (Sunday..Saturday)
%w. День недели (0=Sunday..6=Saturday)
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
%X. Год для недели, где первый день недели — воскресенье, число из четырех цифр; используется вместе с %V
%x. Год для недели, где первый день недели — понедельник, число из четырех цифр; используется вместе с %V
%Y. Год, число, четыре цифры
%y. Числовое обозначение года (две цифры)
DATE_SUB(date,INTERVAL expr unit)
Аналогично функции DATE_ADD ().
DAY(date)
DAY() является синонимом функции DAYOFMONTH().
DAYNAME(date)
Возвращает день недели для указанной даты.
DAYOFMONTH(date)
Возвращает день месяца для указанной даты в диапазоне от 0 до 31.
DAYOFWEEK(date)
DAYOFYEAR(date)
Возвращает день года для указанной даты в диапазоне от 1 до 366.
EXTRACT(unit FROM date)
Функция EXTRACT() использует те же типы указателей единиц измерения, что и DATE_ADD() или DATE_SUB(), но не выполняет арифметические операции с датами, а извлекает из даты часть относящуюся к указателю единиц измерения.
FROM_DAYS(N)
Возвращается значение DATE с учетом числа дней N.
Примечание. Используйте 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().
HOUR(time)
Возвращает часы из указанного времени. Диапазон возвращаемого значения составляет от 0 до 23. Однако диапазон значений TIME на самом деле намного больше, поэтому HOUR может возвращать значения, превышающие 23.
LAST_DAY(date)
Принимает значение даты или даты и времени и возвращает значение, соответствующее последнему дню месяца. Возвращает NULL, если аргумент недействителен.
LOCALTIME и LOCALTIME()
LOCALTIME и LOCALTIME() являются синонимами для NOW().
LOCALTIMESTAMP и LOCALTIMESTAMP()
LOCALTIMESTAMP и LOCALTIMESTAMP() являются синонимами для NOW().
MAKEDATE(year,dayofyear)
Возвращает значения даты, заданного года и дня года. Значение dayofyear должно быть больше 0 или результат будет NULL.
MAKETIME(hour,minute,second)
Возвращает значение времени, рассчитанное из аргументов hour, minute и second.
MICROSECOND(expr)
Возвращает микросекунды из выражения времени или выражения datetime(expr) в виде числа в диапазоне от 0 до 999999.
MINUTE(time)
Возвращает минуты для указанного времени, в диапазоне от 0 до 59.
MONTH(date)
Возвращает месяц для указанной даты в диапазоне от 0 до 12.
MONTHNAME(date)
Возвращает полное название месяца для указанной даты.
Возвращает текущую дату и время как значение в формате «YYYY-MM-DD HH: MM: SS» или YYYYMMDDHHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте. Это значение выражается в текущем часовом поясе.
PERIOD_ADD(P,N)
Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает значение в формате YYYYMM. Обратите внимание, что аргумент периода P не является значением даты.
PERIOD_DIFF(P1,P2)
Возвращает количество месяцев между периодами P1 и P2. Периоды P1 и P2 должны указываться в формате YYMM или YYYYMM. Обратите внимание, что аргументы периодов P1 и P2 не являются значениями даты.
QUARTER(date)
Возвращает квартал года для указанной даты в диапазоне от 1 до 4.
SECOND(time)
Возвращает значение секунд для времени в диапазоне от 0 до 59.
SEC_TO_TIME(seconds)
Возвращает аргумент seconds, преобразованный в часы, минуты и секунды в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте.
STR_TO_DATE(str,format)
Это инверсивная функция к функции DATE_FORMAT(). Она принимает строку str и строку формата format. Функция STR_TO_DATE() возвращает значение DATETIME, если строка формата содержит как дату, так и время. В противном случае она возвращает значение DATE или TIME, если строка содержит только дату или время.
SUBDATE(date,INTERVAL expr unit) и SUBDATE(expr,days)
Если SUBDATE() вызывается со вторым аргументом, заданным в виде INTERVAL, функция является синонимом DATE_SUB(). Информацию об аргументе INTERVAL смотрите в разделе DATE_ADD().
SUBTIME(expr1,expr2)
Функция SUBTIME() возвращает expr1. expr2 выражается как значение в том же формате, что и expr1. Значение expr1 является выражением времени или даты и времени, а значение expr2 является выражением времени.
SYSDATE()
Возвращает текущую дату и время как значение в формате «YYYY-MM-DD HH: MM: SS» или YYYYMMDDHHMMSS, в зависимости от того, используется ли функция в строковом или в числовом контексте.
TIME(expr)
Извлекает часть, относящуюся ко времени, выражения expr и возвращает его в виде строки.
TIMEDIFF(expr1,expr2)
TIMESTAMP (expr), TIMESTAMP (expr1, expr2)
С одним указанным аргументом эта функция возвращает выражение даты или даты и времени expr, как значение даты и времени. С двумя аргументами она добавляет выражение времени expr2 к выражению даты или даты и времени expr1 и возвращает результат как значение даты и времени.
TIMESTAMPADD(unit,interval,datetime_expr)
Эта функция добавляет целочисленное выражение interval к выражению даты или времени datetime_expr. Единицы измерения для интервала задаются аргументом unit, который может принимать одно из следующих значений:
Значение unit может быть указано с использованием одного из ключевых слов, как было показано выше, или с префиксом SQL_TSI_. Например, DAY и SQL_TSI_DAY являются действительными значениями.
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Возвращает целочисленную разницу между выражениями даты или даты и времени datetime_expr1 и datetime_expr2. Единицы измерения для результата задаются аргументом unit. Действительными для аргумента unit являются те же значения, которые были перечислены в описании функции TIMESTAMPADD().
TIME_FORMAT(time,format)
Эта функция используется так же, как и функция DATE_FORMAT(), но строка format может содержать указатели формата только для часов, минут и секунд.
Если значение времени содержит часть, относящуюся к часам, которая больше 23, указатели формата часов %H и %k дают значение, большее, чем обычный диапазон от 0 до 23. Другие указатели формата часов дают значение часа 12 по модулю.
TIME_TO_SEC(time)
Возвращает аргумент time, преобразованный в секунды.
TO_DAYS(date)
Возвращает номер дня (количество дней с 0-го года) для заданной даты date.
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.
UTC_DATE, UTC_DATE()
Возвращает текущую дату UTC как значение в формате «YYYY-MM-DD» или YYYYMMDD, в зависимости от того, используется ли эта функция в строковом или числовом контексте.
UTC_TIME, UTC_TIME()
Возвращает текущее время UTC как значение в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте.
UTC_TIMESTAMP, UTC_TIMESTAMP()
Возвращает текущую дату и время UTC как значение «YYYY-MM-DD HH: MM: SS» или в формате YYYYMMDDHHMMSS, в зависимости от того, используется ли эта функция в строковом или в числовом контексте.
WEEK(date[,mode])
Эта функция возвращает номер недели для заданной даты date. Форма WEEK() с двумя аргументами позволяет указать, будет ли неделя начинаться в воскресенье или в понедельник, и должно ли возвращаемое значение находиться в диапазоне от 0 до 53 или от 1 до 53. Если аргумент mode опущен, используется значение системной переменной default_week_format
WEEKDAY(date)
Возвращает индекс дня недели для заданной даты date (0 = понедельник, 1 = вторник, 6 = воскресенье).
WEEKOFYEAR(date)
Возвращает календарную неделю для заданной даты date как число в диапазоне от 1 до 53. WEEKOFYEAR() — это функция совместимости, эквивалентная WEEK(date,3).
YEAR(date)
YEARWEEK(date), YEARWEEK(date,mode)
Возвращает год и неделю для заданной даты date. Параметр mode работает точно так же, как аргумент mode для функции WEEK(). Год в результате может отличаться от года в аргументе даты для первой и последней недели года.
Примечание. Номер недели отличается от того, что вернет функция WEEK() (0) для необязательных аргументов 0 или 1, так как WEEK() вернет неделю в контексте данного года.
Редакция: Команда webformyself.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока