MySQL Date and Time Functions
CURDATE and CURTIME Functions
CURDATE(): It returns the current date as a value in 'YYYY-MM-DD' or YYYYMMDD format, depending on which function is used.
mysql> SELECT CURDATE(); +------------+ | CURDATE() | +------------+ | 2020-08-28 | +------------+ 1 row in set (0.00 sec) mysql> SELECT CURDATE() + 0; +---------------+ | CURDATE() + 0 | +---------------+ | 20200828 | +---------------+ 1 row in set (0.00 sec) mysql> SELECT CURTIME(); +-----------+ | CURTIME() | +-----------+ | 17:51:39 | +-----------+ 1 row in set (0.00 sec) mysql> SELECT CURTIME() + 0; +---------------+ | CURTIME() + 0 | +---------------+ | 175152 | +---------------+ 1 row in set (0.00 sec)
NOW, SLEEP, and SYSDATE Functions
NOW(): It returns a constant time that indicates the time at which the statement start to execute, and SYSDATE() returns the exact time at which it executes.
mysql> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2020-08-28 17:53:08 | +---------------------+ 1 row in set (0.00 sec) mysql> SELECT NOW(), SLEEP(2), NOW(); +---------------------+----------+---------------------+ | NOW() | SLEEP(2) | NOW() | +---------------------+----------+---------------------+ | 2020-08-28 17:53:25 | 0 | 2020-08-28 17:53:25 | +---------------------+----------+---------------------+ 1 row in set (2.34 sec) mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE(); +---------------------+----------+---------------------+ | SYSDATE() | SLEEP(2) | SYSDATE() | +---------------------+----------+---------------------+ | 2020-08-28 17:54:07 | 0 | 2020-08-28 17:54:09 | +---------------------+----------+---------------------+ 1 row in set (2.00 sec)
DATEDIFF and DATE_ADD Functions
DATEDIFF(): It returns expr1 − expr2 (date or date-and-time expressions) expressed as a value in days from one date to the other
mysql> SELECT DATEDIFF(CURDATE(),'2018-02-19'); +----------------------------------+ | DATEDIFF(CURDATE(),'2018-02-19') | +----------------------------------+ | 921 | +----------------------------------+ 1 row in set (0.00 sec) mysql> SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY); +-------------------------------------+ | DATE_ADD(CURDATE(), INTERVAL 1 DAY) | +-------------------------------------+ | 2020-08-29 | +-------------------------------------+ 1 row in set (0.01 sec) mysql> SELECT DATE_ADD(CURDATE(), INTERVAL 5 MONTH); +---------------------------------------+ | DATE_ADD(CURDATE(), INTERVAL 5 MONTH) | +---------------------------------------+ | 2021-01-28 | +---------------------------------------+ 1 row in set (0.00 sec)
DATE_FORMAT Function
mysql> SELECT DATE_FORMAT(CURDATE(), '%W %M %Y'); +------------------------------------+ | DATE_FORMAT(CURDATE(), '%W %M %Y') | +------------------------------------+ | Friday August 2020 | +------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT DATE_FORMAT(CURDATE(), '%D %y %a %d %m %b %j') AS DATE_FORMAT; +---------------------------+ | DATE_FORMAT | +---------------------------+ | 28th 20 Fri 28 08 Aug 241 | +---------------------------+ 1 row in set (0.00 sec) mysql> SELECT DATE_FORMAT('2018-02-19', GET_FORMAT(DATE,'USA')) AS USA_DATE_FORMAT; +-----------------+ | USA_DATE_FORMAT | +-----------------+ | 02.19.2018 | +-----------------+ 1 row in set (0.00 sec) mysql> SELECT DATE_FORMAT('2018-02-19', GET_FORMAT(DATE,'EUR')) AS EUR_DATE_FORMAT; +-----------------+ | EUR_DATE_FORMAT | +-----------------+ | 19.02.2018 | +-----------------+ 1 row in set (0.00 sec)
DAYNAME Function
mysql> SELECT DAYNAME(CURDATE()); +--------------------+ | DAYNAME(CURDATE()) | +--------------------+ | Friday | +--------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYNAME('2018-02-19'); +-----------------------+ | DAYNAME('2018-02-19') | +-----------------------+ | Monday | +-----------------------+ 1 row in set (0.00 sec)
DAYOFMONTH, DAYOFWEEK, and DAYOFYEAR Functions
WEEKDAY(): It Returns the weekday index for date (0 = Monday, 1 = Tuesday, … 6 = Sunday)
mysql> SELECT DAYOFMONTH(CURDATE()); +-----------------------+ | DAYOFMONTH(CURDATE()) | +-----------------------+ | 28 | +-----------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYOFWEEK('2018-02-19'); +-------------------------+ | DAYOFWEEK('2018-02-19') | +-------------------------+ | 2 | +-------------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYOFWEEK(CURDATE()); +----------------------+ | DAYOFWEEK(CURDATE()) | +----------------------+ | 6 | +----------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYOFYEAR(CURDATE()); +----------------------+ | DAYOFYEAR(CURDATE()) | +----------------------+ | 241 | +----------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYOFYEAR('2018-02-19'); +-------------------------+ | DAYOFYEAR('2018-02-19') | +-------------------------+ | 50 | +-------------------------+ 1 row in set (0.00 sec)
EXTRACT Function
mysql> SELECT EXTRACT(YEAR FROM CURDATE()) AS YEAR; +------+ | YEAR | +------+ | 2020 | +------+ 1 row in set (0.00 sec) mysql> SELECT EXTRACT(MONTH FROM CURDATE()) AS MONTH; +-------+ | MONTH | +-------+ | 8 | +-------+ 1 row in set (0.00 sec)
LAST_DAY and MONTHNAME Functions
mysql> SELECT LAST_DAY('2018-02-19'); +------------------------+ | LAST_DAY('2018-02-19') | +------------------------+ | 2018-02-28 | +------------------------+ 1 row in set (0.00 sec) mysql> SELECT MONTHNAME(CURDATE()); +----------------------+ | MONTHNAME(CURDATE()) | +----------------------+ | August | +----------------------+ 1 row in set (0.00 sec)
SEC_TO_TIME and SUBDATE Functions
mysql> SELECT SEC_TO_TIME(4500); +-------------------+ | SEC_TO_TIME(4500) | +-------------------+ | 01:15:00 | +-------------------+ 1 row in set (0.00 sec) mysql> SELECT SUBDATE(CURDATE(), INTERVAL 107 DAY) AS DIFFERENCE; +------------+ | DIFFERENCE | +------------+ | 2020-05-13 | +------------+ 1 row in set (0.00 sec)
UTC_DATE and UTC_TIME Functions
mysql> SELECT UTC_DATE(); +------------+ | UTC_DATE() | +------------+ | 2020-08-28 | +------------+ 1 row in set (0.01 sec) mysql> SELECT UTC_TIME(); +------------+ | UTC_TIME() | +------------+ | 12:33:54 | +------------+ 1 row in set (0.00 sec) mysql> SELECT UTC_TIMESTAMP(); +---------------------+ | UTC_TIMESTAMP() | +---------------------+ | 2020-08-28 12:34:11 | +---------------------+ 1 row in set (0.00 sec) mysql> SELECT WEEK(CURDATE()); +-----------------+ | WEEK(CURDATE()) | +-----------------+ | 34 | +-----------------+ 1 row in set (0.00 sec)
Advertisement