# # Test Date Functions # Author: Bharath, bharath.bokka@mariadb.com # -- source ../include/have_columnstore.inc --disable_warnings DROP DATABASE IF EXISTS mcs92_db; --enable_warnings CREATE DATABASE mcs92_db; USE mcs92_db; CREATE TABLE t1(t1_d DATE, t1_t TIME, t1_dt DATETIME)ENGINE=Columnstore; INSERT INTO t1 VALUES(NULL, NULL, NULL); INSERT INTO t1 VALUES('0000-00-00', '00:00:00', '0000-00-00'); INSERT INTO t1 VALUES('2222-11-11', '12:12:12', '2020-11-11 12:12:12'); INSERT INTO t1 VALUES('2020-01-01', '11:11:11', '2020-12-31 12:34:56'); INSERT INTO t1 VALUES('2016-02-01', '11:11:11', '2017-02-01 12:12:12'); SELECT t1_d, t1_t, t1_dt, DATEDIFF(t1_dt, t1_d) FROM t1; SELECT t1_d, t1_t, t1_dt, DATEDIFF(t1_dt, t1_d) "Datediff in days" FROM t1 WHERE t1_dt > 0; SELECT t1_d, t1_t, t1_dt, DAY(t1_dt), DAY(t1_d) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL 1 SECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL -1 SECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL 1 DAY) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL -1 DAY) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL 1 MONTH) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL -1 MONTH) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL 0 MONTH) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '2:1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '-2:1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '2:-1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '-2:-1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '-1 2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '1 2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '-1 -2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '1 -2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '1.9' SECOND_MICROSECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL '-1.9' SECOND_MICROSECOND) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL 12 HOUR) FROM t1; SELECT t1_dt, DATE_ADD(t1_dt, INTERVAL -1 HOUR) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL 1 SECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL -1 SECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL 1 DAY) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL -1 DAY) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL 1 MONTH) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL -1 MONTH) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL 0 MONTH) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '2:1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '-2:1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '2:-1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '-2:-1' MINUTE_SECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '-1 2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '1 2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '-1 -2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '1 -2' DAY_HOUR) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '1.9' SECOND_MICROSECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL '-1.9' SECOND_MICROSECOND) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL 12 HOUR) FROM t1; SELECT t1_dt, DATE_SUB(t1_dt, INTERVAL -1 HOUR) FROM t1; SELECT t1_dt, DATE_FORMAT(t1_dt, '%Y-%m-%d') a, DATE_FORMAT(t1_d, '%a %D %b %Y') b, DATE_FORMAT(t1_d, '%W %D %M %Y') c FROM t1; SELECT t1_dt, DATE_FORMAT(t1_dt, '%Y/%m/%d %T') a, DATE_FORMAT(t1_dt, '%a %D %b %Y %H:%i') b, DATE_FORMAT(t1_dt, '%W %D %M %Y %T') c FROM t1; SELECT @@lc_time_names; SELECT t1_dt, DAYNAME(t1_dt), DAYOFWEEK(t1_dt), WEEKDAY(t1_dt) FROM t1; SELECT t1_d, DAYNAME(t1_d), DAYOFWEEK(t1_d), WEEKDAY(t1_d) FROM t1; SELECT t1_dt, EXTRACT(SECOND FROM t1_dt) 'SECOND', EXTRACT(DAY_HOUR FROM t1_dt) 'DAY_HOUR', EXTRACT(HOUR FROM t1_dt) 'HOUR', EXTRACT(MINUTE FROM t1_dt) 'MINUTE' FROM t1; SELECT t1_dt, EXTRACT(DAY FROM t1_dt) 'DAY', EXTRACT(YEAR FROM t1_dt) 'YEAR', EXTRACT(MONTH FROM t1_dt) 'MONTH', EXTRACT(WEEK FROM t1_dt) 'WEEK' FROM t1; SELECT t1_dt, MONTH(t1_dt) FROM t1; SELECT t1_dt, t1_t, TIMEDIFF(t1_dt, t1_t) FROM t1; SELECT t1_dt, TIMEDIFF(t1_dt, '5555-11-11 12:58:11') FROM t1; SELECT t1_t, TIMEDIFF('12:58:11', t1_t) FROM t1; SELECT t1_d, t1_dt, TIMESTAMPDIFF(MONTH, t1_d, t1_dt) FROM t1; SELECT t1_d, t1_dt, TIMESTAMPDIFF(DAY, t1_d, t1_dt) FROM t1; SELECT t1_d, t1_dt, TIMESTAMPDIFF(MINUTE, t1_d, t1_dt) FROM t1; SELECT t1_d, t1_dt, TIMESTAMPDIFF(SECOND, t1_d, t1_dt) FROM t1; SELECT t1_d, WEEK(t1_d), t1_dt, WEEK(t1_dt) FROM t1; SELECT t1_d, YEAR(t1_d), t1_dt, YEAR(t1_dt) FROM t1; # Clean UP DROP DATABASE mcs92_db;