DROP DATABASE IF EXISTS mcs264_db; CREATE DATABASE mcs264_db; USE mcs264_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('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 SUBDATE('2000-01-01', INTERVAL 1 DAY) FROM t1 LIMIT 1; SUBDATE('2000-01-01', INTERVAL 1 DAY) 1999-12-31 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 MICROSECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 MICROSECOND) NULL NULL 2016-02-01 2016-01-31 23:59:59.999995 2020-01-01 2019-12-31 23:59:59.999995 2222-11-11 2222-11-10 23:59:59.999995 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 SECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 SECOND) NULL NULL 2016-02-01 2016-01-31 23:59:55 2020-01-01 2019-12-31 23:59:55 2222-11-11 2222-11-10 23:59:55 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 MINUTE) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 MINUTE) NULL NULL 2016-02-01 2016-01-31 23:55:00 2020-01-01 2019-12-31 23:55:00 2222-11-11 2222-11-10 23:55:00 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 HOUR) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 HOUR) NULL NULL 2016-02-01 2016-01-31 19:00:00 2020-01-01 2019-12-31 19:00:00 2222-11-11 2222-11-10 19:00:00 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 DAY) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 DAY) NULL NULL 2016-02-01 2016-01-27 2020-01-01 2019-12-27 2222-11-11 2222-11-06 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 WEEK) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 WEEK) NULL NULL 2016-02-01 2015-12-28 2020-01-01 2019-11-27 2222-11-11 2222-10-07 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 MONTH) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 MONTH) NULL NULL 2016-02-01 2015-09-01 2020-01-01 2019-08-01 2222-11-11 2222-06-11 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 QUARTER) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 QUARTER) NULL NULL 2016-02-01 2014-11-01 2020-01-01 2018-10-01 2222-11-11 2221-08-11 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 YEAR) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 YEAR) NULL NULL 2016-02-01 2011-02-01 2020-01-01 2015-01-01 2222-11-11 2217-11-11 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 SECOND_MICROSECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 SECOND_MICROSECOND) NULL NULL 2016-02-01 2016-01-31 23:59:59.999995 2020-01-01 2019-12-31 23:59:59.999995 2222-11-11 2222-11-10 23:59:59.999995 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 MINUTE_MICROSECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 MINUTE_MICROSECOND) NULL NULL 2016-02-01 2016-01-31 23:59:59.999995 2020-01-01 2019-12-31 23:59:59.999995 2222-11-11 2222-11-10 23:59:59.999995 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 MINUTE_SECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 MINUTE_SECOND) NULL NULL 2016-02-01 2016-01-31 23:59:55 2020-01-01 2019-12-31 23:59:55 2222-11-11 2222-11-10 23:59:55 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 HOUR_MICROSECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 HOUR_MICROSECOND) NULL NULL 2016-02-01 2016-01-31 23:59:59.999995 2020-01-01 2019-12-31 23:59:59.999995 2222-11-11 2222-11-10 23:59:59.999995 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 HOUR_SECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 HOUR_SECOND) NULL NULL 2016-02-01 2016-01-31 23:59:55 2020-01-01 2019-12-31 23:59:55 2222-11-11 2222-11-10 23:59:55 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 HOUR_MINUTE) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 HOUR_MINUTE) NULL NULL 2016-02-01 2016-01-31 23:55:00 2020-01-01 2019-12-31 23:55:00 2222-11-11 2222-11-10 23:55:00 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 DAY_MICROSECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 DAY_MICROSECOND) NULL NULL 2016-02-01 2016-01-31 23:59:59.999995 2020-01-01 2019-12-31 23:59:59.999995 2222-11-11 2222-11-10 23:59:59.999995 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 DAY_SECOND) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 DAY_SECOND) NULL NULL 2016-02-01 2016-01-31 23:59:55 2020-01-01 2019-12-31 23:59:55 2222-11-11 2222-11-10 23:59:55 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 DAY_MINUTE) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 DAY_MINUTE) NULL NULL 2016-02-01 2016-01-31 23:55:00 2020-01-01 2019-12-31 23:55:00 2222-11-11 2222-11-10 23:55:00 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 DAY_HOUR) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 DAY_HOUR) NULL NULL 2016-02-01 2016-01-31 19:00:00 2020-01-01 2019-12-31 19:00:00 2222-11-11 2222-11-10 19:00:00 SELECT t1_d, SUBDATE(t1_d, INTERVAL 5 YEAR_MONTH) FROM t1 ORDER BY 1; t1_d SUBDATE(t1_d, INTERVAL 5 YEAR_MONTH) NULL NULL 2016-02-01 2015-09-01 2020-01-01 2019-08-01 2222-11-11 2222-06-11 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 MICROSECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 MICROSECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:11.999995 2020-11-11 12:12:12 2020-11-11 12:12:11.999995 2020-12-31 12:34:56 2020-12-31 12:34:55.999995 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 SECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 SECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:07 2020-11-11 12:12:12 2020-11-11 12:12:07 2020-12-31 12:34:56 2020-12-31 12:34:51 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 MINUTE) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 MINUTE) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:07:12 2020-11-11 12:12:12 2020-11-11 12:07:12 2020-12-31 12:34:56 2020-12-31 12:29:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 HOUR) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 HOUR) NULL NULL 2017-02-01 12:12:12 2017-02-01 07:12:12 2020-11-11 12:12:12 2020-11-11 07:12:12 2020-12-31 12:34:56 2020-12-31 07:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 DAY) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 DAY) NULL NULL 2017-02-01 12:12:12 2017-01-27 12:12:12 2020-11-11 12:12:12 2020-11-06 12:12:12 2020-12-31 12:34:56 2020-12-26 12:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 WEEK) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 WEEK) NULL NULL 2017-02-01 12:12:12 2016-12-28 12:12:12 2020-11-11 12:12:12 2020-10-07 12:12:12 2020-12-31 12:34:56 2020-11-26 12:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 MONTH) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 MONTH) NULL NULL 2017-02-01 12:12:12 2016-09-01 12:12:12 2020-11-11 12:12:12 2020-06-11 12:12:12 2020-12-31 12:34:56 2020-07-31 12:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 QUARTER) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 QUARTER) NULL NULL 2017-02-01 12:12:12 2015-11-01 12:12:12 2020-11-11 12:12:12 2019-08-11 12:12:12 2020-12-31 12:34:56 2019-09-30 12:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 YEAR) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 YEAR) NULL NULL 2017-02-01 12:12:12 2012-02-01 12:12:12 2020-11-11 12:12:12 2015-11-11 12:12:12 2020-12-31 12:34:56 2015-12-31 12:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 SECOND_MICROSECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 SECOND_MICROSECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:11.999995 2020-11-11 12:12:12 2020-11-11 12:12:11.999995 2020-12-31 12:34:56 2020-12-31 12:34:55.999995 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 MINUTE_MICROSECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 MINUTE_MICROSECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:11.999995 2020-11-11 12:12:12 2020-11-11 12:12:11.999995 2020-12-31 12:34:56 2020-12-31 12:34:55.999995 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 MINUTE_SECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 MINUTE_SECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:07 2020-11-11 12:12:12 2020-11-11 12:12:07 2020-12-31 12:34:56 2020-12-31 12:34:51 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 HOUR_MICROSECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 HOUR_MICROSECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:11.999995 2020-11-11 12:12:12 2020-11-11 12:12:11.999995 2020-12-31 12:34:56 2020-12-31 12:34:55.999995 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 HOUR_SECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 HOUR_SECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:07 2020-11-11 12:12:12 2020-11-11 12:12:07 2020-12-31 12:34:56 2020-12-31 12:34:51 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 HOUR_MINUTE) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 HOUR_MINUTE) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:07:12 2020-11-11 12:12:12 2020-11-11 12:07:12 2020-12-31 12:34:56 2020-12-31 12:29:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 DAY_MICROSECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 DAY_MICROSECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:11.999995 2020-11-11 12:12:12 2020-11-11 12:12:11.999995 2020-12-31 12:34:56 2020-12-31 12:34:55.999995 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 DAY_SECOND) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 DAY_SECOND) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:12:07 2020-11-11 12:12:12 2020-11-11 12:12:07 2020-12-31 12:34:56 2020-12-31 12:34:51 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 DAY_MINUTE) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 DAY_MINUTE) NULL NULL 2017-02-01 12:12:12 2017-02-01 12:07:12 2020-11-11 12:12:12 2020-11-11 12:07:12 2020-12-31 12:34:56 2020-12-31 12:29:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 DAY_HOUR) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 DAY_HOUR) NULL NULL 2017-02-01 12:12:12 2017-02-01 07:12:12 2020-11-11 12:12:12 2020-11-11 07:12:12 2020-12-31 12:34:56 2020-12-31 07:34:56 SELECT t1_dt, SUBDATE(t1_dt, INTERVAL 5 YEAR_MONTH) FROM t1 ORDER BY 1; t1_dt SUBDATE(t1_dt, INTERVAL 5 YEAR_MONTH) NULL NULL 2017-02-01 12:12:12 2016-09-01 12:12:12 2020-11-11 12:12:12 2020-06-11 12:12:12 2020-12-31 12:34:56 2020-07-31 12:34:56 SELECT t1_t, SUBDATE(t1_t, INTERVAL 5 MICROSECOND) FROM t1 ORDER BY 1; t1_t SUBDATE(t1_t, INTERVAL 5 MICROSECOND) NULL NULL 11:11:11 NULL 11:11:11 NULL 12:12:12 NULL DROP DATABASE mcs264_db;