MySQL time і date


Функції для роботи з датами і часом

MySQL має ряд вбудованих функцій для роботи з датами і часом.


Отримання дати і часу

  • Функції NOW () , SYSDATE () , [strong]CURRENT_TIME STAMP ()[/strong] повертають поточну локальну дату і час на основі системного годинника у вигляді об'єкта datetime. Всі три функції повертають однаковий результат
SELECT NOW();               -- 2018-05-25 21:34:55
SELECT SYSDATE();           -- 2018-05-25 21:34:55
SELECT CURRENT_TIMESTAMP(); -- 2018-05-25 21:32:55
  • Функції CURDATE і CURRENT_DATE повертають поточну локальну дату у вигляді об'єкта date:
SELECT CURRENT_DATE();      -- 2018-05-25
SELECT CURDATE();           -- 2018-05-25
  • Функції CURTIME і CURRENT_TIME повертають поточний час у вигляді об'єкта time:
SELECT CURRENT_TIME();  -- 20:47:45
SELECT CURTIME();       -- 20:47:45
  • UTC_DATE повертає поточну локальну дату щодо GMT
SELECT UTC_DATE();      -- 2018-05-25
  • UTC_TIME повертає поточний локальний час щодо GMT
SELECT UTC_TIME();      -- 17:47:45

Парсинг дати і часу

  • DAYOF[strong]MONTH (date) [/strong] повертає день місяця у вигляді числового значення
  • DAYOFWEEK (date) повертає день тижня у вигляді числового значення
  • DAYOF[strong]YEAR (date) [/strong] повертає номер дня в році
  • MONTH (date) повертає місяць дати
  • YEAR (date) повертає рік з дати
  • QUARTER (date) повертає номер кварталу року
  • WEEK (date [, first]) повертає номер тижня року. Необов'язковий параметр дозволяє задати стартовий день тижня. Якщо цей параметр дорівнює 1, то першим днем вважається понеділок, інакше неділю
  • LAST_DAY (date) повертає останній день місяця у вигляді дати
  • DAYNAME (date) повертає назву дня тижня
  • MONTHNAME (date) повертає назву поточного місяця
  • HOUR (time) повертає годину часу
  • MINUTE (time) повертає хвилину часу
  • SECOND (time) повертає секунду часу

Приклади функцій:

функція

Результат

DAYOFMONTH ( '2018-05-25')

25

DAYOFWEEK ( '2018-05-25')

6

DAYOFYEAR ( '2018-05-25')

145

MONTH ( '2018-05-25')

5

YEAR ( '2018-05-25')

2018

QUARTER ( '2018-05-25')

2

WEEK ( '2018-05-25', 1)

21

LAST_DAY ( '2018-05-25')

2018-05-31

DAYNAME ( '2018-05-25')

п'ятниця

MONTHNAME ( '2018-05-25')

May

HOUR ('21: 25: 54 ')

21

MINUTE ('21: 25: 54 ')

25

SECOND ('21: 25: 54 ')

54


Функція EXTRACT

Функція EXTRACT витягує з дати і часу якийсь певний компонент.

Її формальний синтаксис:

EXTRACT(unit FROM datetime)

Значення datetime представляє вихідну дату і (або) час, а значення unit вказує, який компонент дати або часу буде вилучатись. Параметр unit може бути одним із наступних значень:

  • SECOND (Секунди)

  • MINUTE (Хвилини)

  • HOUR (час)

  • DAY (день)

  • MONTH (Місяць)

  • YEAR (Рік)

  • MINUTE_SECOND (Хвилини і секунди)

  • HOUR_MINUTE (Години та хвилини)

  • DAY_HOUR (День і годинник)

  • YEAR_MONTH (Рік і місяць)

  • HOUR_SECOND (Години, хвилини і секунди)

  • DAY_MINUTE (День, години та хвилини)

  • DAY_SECOND (День, чаи, хвилини і секунди)

Приклади виклику функції:

Виклик

Результат

EXTRACT( SECOND FROM '2018-05-25 21:25:54')

54

EXTRACT( MINUTE FROM '2018-05-25 21:25:54')

25

EXTRACT( HOUR FROM '2018-05-25 21:25:54')

21

EXTRACT( DAY FROM '2018-05-25 21:25:54')

25

EXTRACT( MONTH FROM '2018-05-25 21:25:54')

5

EXTRACT( YEAR FROM '2018-05-25 21:25:54')

2018

EXTRACT( MINUTE_SECOND FROM '2018-05-25 21:25:54')

2554

EXTRACT( DAY_HOUR FROM '2018-05-25 21:25:54')

2521

EXTRACT( YEAR_MONTH FROM '2018-05-25 21:25:54')

201805

EXTRACT( HOUR_SECOND FROM '2018-05-25 21:25:54')

212554

EXTRACT( DAY_MINUTE FROM '2018-05-25 21:25:54')

252125

EXTRACT( DAY_SECOND FROM '2018-05-25 21:25:54')

25212554


Функції для маніпуляції з датами

Ряд функцій дозволяють робити операції додавання і віднімання з датами і часом:

  • DATE_ADD (date, INTERVAL expression unit) повертає об'єкт DATE або DATETIME, який є результатом складання дати date з певним часовим інтервалом. Інтервал задається за допомогою виразу INTERVAL expression unit , де INTERVAL надає ключове слово, expression - кількість додаються до дати одиниць, а unit - тип одиниць (години, дні і т.д.) Параметр unit може мати ті ж значення, що і в функції EXTRACT, тобто DAY, HOUR і т.д.

  • DATE_SUB (date, INTERVAL expression unit) повертає об'єкт DATE або DATETIME, який є результатом вирахування з дати date певного тимчасового інтервалу

  • DATEDIFF (date1, date2) повертає різницю в днях між датами date1 і date2

  • TO_DAYS (date) повертає кількість днів з 0-го року

  • TIME_TO_SEC (time) повертає кількість секунд, що пройшли з моменту півночі

Приклади застосування:

Виклик

Результат

DATE_ADD('2018-05-25', INTERVAL 1 DAY)

2018-05-26

DATE_ADD('2018-05-25', INTERVAL 3 MONTH)

2018-08-25

DATE_ADD('2018-05-25 21:31:27', INTERVAL 4 HOUR)

2018-05-26 01:31:27

DATE_SUB('2018-05-25', INTERVAL 4 DAY)

2018-05-21

DATEDIFF('2018-05-25', '2018-05-27')

-2

DATEDIFF('2018-05-25', '2018-05-21')

4

DATEDIFF('2018-05-25', '2018-03-21')

65

TO_DAYS('2018-05-25')

737204

TIME_TO_SEC('10:00')

36000

Форматування дат і часу

  • DATE_FORMAT (date, format) повертає об'єкт DATE або DATETIME, відформатований за допомогою шаблону format

  • TIME_FORMAT (date, format) повертає об'єкт TIME або DATETIME, відформатований за допомогою шаблону format

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

  • %m : місяць в числовому форматі 01..12

  • : місяць в числовому форматі 1..12

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

  • %b : Абревіатура місяці (Jan ... Dec)

  • %d : день місяця в числовому форматі 00..31

  • %e : день місяця в числовом форматі 0..31

  • %D : Номер дня місяця з суфіксом (1st, 2nd, 3rd ...)

  • %y : Рік у вигляді двох чисел

  • %Y : Рік у вигляді чотирьох чисел

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

  • %a : Абревіатура дня тижня (Sun ... Sat)

  • %H : час в форматі 00..23

  • %k : час в форматі 0..23

  • %h : час в форматі 01..12

  • %l : час в форматі 1..12

  • %i : Хвилини в форматі 00..59

  • %r : Час в 12-годинному форматі (hh: mm: ss AM або PM)

  • %T : Час в 24-годинному форматі (hh: mm: ss)

  • %S : Секунди в форматі 00..59

  • %p : AM або PM

Приклади застосування:

виклик

Результат

DATE_FORMAT ( '2018-05-25', '% d /% м /% г')

25/05/18

DATE_FORMAT ( '2018-05-25 21:25:54', '% d% M% Y')

25 травня 2018

DATE_FORMAT ( '2018-05-25 21:25:54', '% г')

9:25:54 PM

TIME_FORMAT ( '2018-05-25 21:25:54', '% H:% I:% S')

21:25:24

TIME_FORMAT ('21: 25: 54 ','% до:% I ')

21:25

Як приклад використання функцій знайдемо замовлення, які були зроблені 5 днів тому:

SELECT * FROM Orders
WHERE DATEDIFF(CURDATE(), CreatedAt) = 5;

Наш партнер:
beta test mp3 playlist downloader