You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			259 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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;
 |