Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Функции даты и времени

Функции смены форматов

В мире существует несколько форматов, в которых может быть представлена дата. Например, в России и Европе принято записывать дату в формате День.Месяц.Год, а в США привычным является формат Месяц.ДЕНЬ.Год. .В MySQL по умолчанию принят формат даты ISO 8601: ГОД – МЕСЯЦ-ДЕНЬ. Но при разработке информационных систем в разных ситуациях бывает удобно использовать различные форматы даты. Для смены форматов в MySQL предусмотрено несколько функций.

Функция GET_FORMAT(date,формат) используется в качестве справочника форматов. Она позволяет узнать, как выглядит тот или иной формат.

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

  • EUR - европейский ;
  • USA - американский ;
  • JIS - японский индустриальный ;
  • ISO - формат ISO;
  • INTERNAL – интернациональный.
Пример 1

Чтобы узнать как выглядит тот или иной формат даты достаточно выполнить команду:

SELECT GET_FORMAT(date,’USA’);

Результат: %m.%d.%Y.

SELECT GET_FORMAT(date,’ISO’);

Результат: %Y-%m-%d.

В этих примерах формат даты записывается при помощи специальных определителей:

  • %M – название месяца;
  • %Y - год из четырех разрядов;
  • %y – год из двух разрядов;
  • %d – день месяца в интервале от 00 до 31
  • %e – день месяца число в интервале от 0 до 31;
  • %m – номер месяца в интервале от 00 до 12;
  • %с – номер месяца в интервале от 0 до 12.

И т.д.

Для того чтобы перевести дату из одного формата в другой используется функция DATE_FORMAT(дата, формат), где аргумент формат задается перечисленными выше определителями.

Пример 2

Можно, например, изобрести собственный формат:

SELECT DATE_FORMAT('2016-09-10','%d / %c /%y');

Результат: 10 / 9 / 16

Но гораздо чаще нужно не изобретать форматы, а переводить даты в существующие форматы. Для таких задач в качестве аргумента формат в функции DATE_FORMAT можно использовать результат, возвращенный функцией GET_FORMAT .

Пример 3

SELECT DATE_FORMAT('2016-09-10',GET_FORMAT(date,'USA'));

Результат: 09.10.2016.

В этом примере дата '2016-09-10',изначально представленная в формате ISO, переведена в американский формат.

«Функции даты и времени» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Точно также работают функции преобразования формата времени:

  • GET_FORMAT(time,формат_времени) - показывает структуру формата времени.
  • TIME_FORMAT(время,формат_времени) – преобразует время к указанному формату, где указанный формат – это результат, возвращенный функцией GET_FORMAT().
Пример 4

SELECT GET_FORMAT(time,'USA');

Результат: %h:%i:%s %p.

SELECT TIME_FORMAT('12:45:14',GET_FORMAT(time,'USA'));

Результат: 12:45:14 PM

При этом используются следующие определители формата времени:

  • %H – час в интервале от 00 до 23;
  • %k – час в интервале от 0 до 23;
  • %h – час в интервале от 01 до 12;
  • %i – час в интервале от 1 до 12;
  • %i – минуты в интервале от 00 до 59;
  • %s – секунды в интервале от 00 до 59.

И т.д.

Функции дней недели

  • Функция DAYOFWEEK(дата) возвращает номер дня недели для аргумента дата начиная с воскресенья (1-воскресенье, 2-понедельник,…,7 - суббота).
  • Функция WEEKDAY(дата) очень похожа на предыдущую, но она возвращает номер дня недели для аргумента дата начиная с понедельника (0-понедельник, 1-вторник, …,6-воскресенье).
  • Функция DAYNAME(дата) возвращает название дня недели.
Пример 5

SELECT DAYOFWEEK('2016-09-10');

Результат: 7.

SELECT WEEKDAY('2016-09-10');

Результат: 5.

Таким образом, обе функции показывают, что 10 сентября 2016 года попадает на субботу, но выражают результат в разных системах!

SELECT DAYNAME('2016-09-10');

Результат: Saturday.

Функции номера дня

Функция DAYOFMONTH(дата) выделяет из аргумента дата номер дня месяца в интервале [1;31].

Пример 6

SELECT DAYOFMONTH('2016-09-10');

Результат: 10.

Функция DAYOFYEAR(дата) возвращает номер дня года в интервале [1;366].

Пример 7

SELECT DAYOFYEAR('2016-09-10');

Результат: 254.

Функции месяца

  • Функция MONTH(дата) возвращает порядковый номер месяца в году в интервале [1;12].
  • Функция MONTHNAME(дата) возвращает название месяца.
Пример 8

SELECT MONTH('2016-09-10');

Результат: 9.

SELECT MONTHNAME('2016-09-10');

Результат: September.

Другие функции даты

  • Функция YEAR(дата) возвращает год для аргумента дата.
  • Функция QUARTER(дата) возвращает номер квартала для аргумента дата в интервале [1;4].
Пример 9

SELECT YEAR('2016-09-10');

Результат 2016.

SELECT QUARTER('2016-09-10');

Результат: 3.

Функции времени

  • Функция HOUR(время) возвращает час аргумента время в интервале [1;59].
  • Функция MINUTE (время) возвращает число минут для аргумента время в интервале [1;59].
  • Функция SECOND(время) возвращает число секунд для аргумента время в интервале [1;59].
Пример 10

SELECT HOUR('10:20:02');

Результат: 10.

SELECT MINUTE('10:20:02');

Результат: 20.

SELECT SECOND('10:20:02');

Результат: 2.

Дата написания статьи: 27.08.2016
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot