set default_storage_engine='tokudb'; DROP TABLE IF EXISTS t1, t2; SET NAMES latin1; # # Testing functions CURRENT_TIME and CURRENT_TIMESTAMP # SELECT CURRENT_TIME(6) RLIKE '^[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$'; CURRENT_TIME(6) RLIKE '^[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$' 1 SELECT CURRENT_TIMESTAMP(6) RLIKE '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$'; CURRENT_TIMESTAMP(6) RLIKE '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$' 1 SELECT LEFT(CURRENT_TIME(6), 8) = CONCAT(CURRENT_TIME); LEFT(CURRENT_TIME(6), 8) = CONCAT(CURRENT_TIME) 1 SELECT LEFT(CURRENT_TIMESTAMP(6), 8) = CONCAT(CURRENT_TIMESTAMP); LEFT(CURRENT_TIMESTAMP(6), 8) = CONCAT(CURRENT_TIMESTAMP) 0 SELECT RIGHT(CURRENT_TIME(6), 7) = RIGHT(CURRENT_TIMESTAMP(6), 7); RIGHT(CURRENT_TIME(6), 7) = RIGHT(CURRENT_TIMESTAMP(6), 7) 1 SELECT CURRENT_TIMESTAMP(6)=TIMESTAMP(CURRENT_DATE, CURRENT_TIME(6)); CURRENT_TIMESTAMP(6)=TIMESTAMP(CURRENT_DATE, CURRENT_TIME(6)) 1 SELECT CURRENT_TIMESTAMP(6)=NOW(6); CURRENT_TIMESTAMP(6)=NOW(6) 1 SELECT CURRENT_TIMESTAMP(6)=LOCALTIME(6); CURRENT_TIMESTAMP(6)=LOCALTIME(6) 1 SELECT CURRENT_TIMESTAMP(6)=LOCALTIMESTAMP(6); CURRENT_TIMESTAMP(6)=LOCALTIMESTAMP(6) 1 SELECT CURRENT_TIMESTAMP(6)<=SYSDATE(6); CURRENT_TIMESTAMP(6)<=SYSDATE(6) 1 SELECT CURRENT_TIMESTAMP(6)<=SYSDATE(6) + 0; CURRENT_TIMESTAMP(6)<=SYSDATE(6) + 0 1 SELECT MICROSECOND(CURRENT_TIME(6))=MICROSECOND(UTC_TIME(6)); MICROSECOND(CURRENT_TIME(6))=MICROSECOND(UTC_TIME(6)) 1 SELECT MICROSECOND(CURRENT_TIMESTAMP(6))=MICROSECOND(UTC_TIMESTAMP(6)); MICROSECOND(CURRENT_TIMESTAMP(6))=MICROSECOND(UTC_TIMESTAMP(6)) 1 CREATE TABLE t1 AS SELECT CONCAT(CURRENT_TIME()), CONCAT(CURRENT_TIME(6)), CONCAT(UTC_TIME()), CONCAT(UTC_TIME(6)), CONCAT(CURRENT_TIMESTAMP()), CONCAT(CURRENT_TIMESTAMP(6)), CONCAT(UTC_TIMESTAMP()), CONCAT(UTC_TIMESTAMP(6)), CONCAT(LOCALTIME()), CONCAT(LOCALTIME(6)), CONCAT(LOCALTIMESTAMP()), CONCAT(LOCALTIMESTAMP(6)), CONCAT(SYSDATE()), CONCAT(SYSDATE(6)); DESCRIBE t1; Field Type Null Key Default Extra CONCAT(CURRENT_TIME()) varchar(10) NO CONCAT(CURRENT_TIME(6)) varchar(17) NO CONCAT(UTC_TIME()) varchar(10) NO CONCAT(UTC_TIME(6)) varchar(17) NO CONCAT(CURRENT_TIMESTAMP()) varchar(19) NO CONCAT(CURRENT_TIMESTAMP(6)) varchar(26) NO CONCAT(UTC_TIMESTAMP()) varchar(19) NO CONCAT(UTC_TIMESTAMP(6)) varchar(26) NO CONCAT(LOCALTIME()) varchar(19) NO CONCAT(LOCALTIME(6)) varchar(26) NO CONCAT(LOCALTIMESTAMP()) varchar(19) NO CONCAT(LOCALTIMESTAMP(6)) varchar(26) NO CONCAT(SYSDATE()) varchar(19) NO CONCAT(SYSDATE(6)) varchar(26) NO DROP TABLE t1; CREATE TABLE t1 AS SELECT NOW(0), NOW(1), NOW(2), NOW(3), NOW(4), NOW(5), NOW(6); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `NOW(0)` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `NOW(1)` datetime(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `NOW(2)` datetime(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `NOW(3)` datetime(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `NOW(4)` datetime(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `NOW(5)` datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', `NOW(6)` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 AS SELECT SYSDATE(0), SYSDATE(1), SYSDATE(2), SYSDATE(3), SYSDATE(4), SYSDATE(5), SYSDATE(6); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `SYSDATE(0)` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `SYSDATE(1)` datetime(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `SYSDATE(2)` datetime(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `SYSDATE(3)` datetime(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `SYSDATE(4)` datetime(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `SYSDATE(5)` datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', `SYSDATE(6)` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 AS SELECT FROM_UNIXTIME(1), FROM_UNIXTIME(1.1), FROM_UNIXTIME(1.12), FROM_UNIXTIME(1.123), FROM_UNIXTIME(1.1234), FROM_UNIXTIME(1.12345), FROM_UNIXTIME(1.123456), FROM_UNIXTIME(1.1234567); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `FROM_UNIXTIME(1)` datetime DEFAULT NULL, `FROM_UNIXTIME(1.1)` datetime(1) DEFAULT NULL, `FROM_UNIXTIME(1.12)` datetime(2) DEFAULT NULL, `FROM_UNIXTIME(1.123)` datetime(3) DEFAULT NULL, `FROM_UNIXTIME(1.1234)` datetime(4) DEFAULT NULL, `FROM_UNIXTIME(1.12345)` datetime(5) DEFAULT NULL, `FROM_UNIXTIME(1.123456)` datetime(6) DEFAULT NULL, `FROM_UNIXTIME(1.1234567)` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing rounding from VARCHAR and TIME(6) to TIME(N) # CREATE TABLE t1 (a VARCHAR(32), t6 TIME(6), t5 TIME(5), t4 TIME(4), t3 TIME(3), t2 TIME(2), t1 TIME(1), t0 TIME); INSERT INTO t1 (a) VALUES ('10:10:10.999999'); INSERT INTO t1 (a) VALUES ('10:10:10.999994'); INSERT INTO t1 (a) VALUES ('10:10:10.999949'); INSERT INTO t1 (a) VALUES ('10:10:10.999499'); INSERT INTO t1 (a) VALUES ('10:10:10.994999'); INSERT INTO t1 (a) VALUES ('10:10:10.949999'); INSERT INTO t1 (a) VALUES ('10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 10:10:10.999999 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.999949 t6 10:10:10.999949 t5 10:10:10.99994 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.999499 t6 10:10:10.999499 t5 10:10:10.99949 t4 10:10:10.9994 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.994999 t6 10:10:10.994999 t5 10:10:10.99499 t4 10:10:10.9949 t3 10:10:10.994 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.949999 t6 10:10:10.949999 t5 10:10:10.94999 t4 10:10:10.9499 t3 10:10:10.949 t2 10:10:10.94 t1 10:10:10.9 t0 10:10:10 a 10:10:10.499999 t6 10:10:10.499999 t5 10:10:10.49999 t4 10:10:10.4999 t3 10:10:10.499 t2 10:10:10.49 t1 10:10:10.4 t0 10:10:10 ALTER TABLE t1 MODIFY a TIME(6); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 10:10:10.999999 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.999949 t6 10:10:10.999949 t5 10:10:10.99994 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.999499 t6 10:10:10.999499 t5 10:10:10.99949 t4 10:10:10.9994 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.994999 t6 10:10:10.994999 t5 10:10:10.99499 t4 10:10:10.9949 t3 10:10:10.994 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 10:10:10.949999 t6 10:10:10.949999 t5 10:10:10.94999 t4 10:10:10.9499 t3 10:10:10.949 t2 10:10:10.94 t1 10:10:10.9 t0 10:10:10 a 10:10:10.499999 t6 10:10:10.499999 t5 10:10:10.49999 t4 10:10:10.4999 t3 10:10:10.499 t2 10:10:10.49 t1 10:10:10.4 t0 10:10:10 DROP TABLE t1; # # Testing rounding from TIME(N) to INT # CREATE TABLE t1 (a INT, b TIME(6)); INSERT INTO t1 (b) VALUES ('10:10:59.500000'); INSERT INTO t1 (b) VALUES ('10:10:10.500000'); INSERT INTO t1 (b) VALUES ('10:10:10.499999'); INSERT INTO t1 (b) VALUES ('-10:10:59.500000'); INSERT INTO t1 (b) VALUES ('-10:10:10.500000'); INSERT INTO t1 (b) VALUES ('-10:10:10.499999'); UPDATE t1 SET a=b; SELECT * FROM t1; a b 101059 10:10:59.500000 101010 10:10:10.500000 101010 10:10:10.499999 -101059 -10:10:59.500000 -101010 -10:10:10.500000 -101010 -10:10:10.499999 DROP TABLE t1; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (TIME'01:59:59.499999'); INSERT INTO t1 VALUES (TIME'01:59:59.500000'); SELECT * FROM t1; a 15959 15959 DROP TABLE t1; # # Inserting TIME into a REAL column # CREATE TABLE t1 (a REAL); INSERT INTO t1 VALUES (TIME'01:02:03.123'); SELECT * FROM t1; a 10203.123 DROP TABLE t1; # # Testing rounding when altering TIME(N) to a smaller size # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME(5); SELECT * FROM t1; a 10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME; SELECT * FROM t1; a 10:10:10 DROP TABLE t1; # # Testing rounding from DATETIME(6) to TIME(N) # CREATE TABLE t1 (a DATETIME(6), t6 TIME(6), t5 TIME(5), t4 TIME(4), t3 TIME(3), t2 TIME(2), t1 TIME(1), t0 TIME); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999949'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999499'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.994999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.949999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; Warnings: Note 1265 Data truncated for column 't0' at row 1 Note 1265 Data truncated for column 't1' at row 1 Note 1265 Data truncated for column 't2' at row 1 Note 1265 Data truncated for column 't3' at row 1 Note 1265 Data truncated for column 't4' at row 1 Note 1265 Data truncated for column 't5' at row 1 Note 1265 Data truncated for column 't6' at row 1 Note 1265 Data truncated for column 't0' at row 2 Note 1265 Data truncated for column 't1' at row 2 Note 1265 Data truncated for column 't2' at row 2 Note 1265 Data truncated for column 't3' at row 2 Note 1265 Data truncated for column 't4' at row 2 Note 1265 Data truncated for column 't5' at row 2 Note 1265 Data truncated for column 't6' at row 2 Note 1265 Data truncated for column 't0' at row 3 Note 1265 Data truncated for column 't1' at row 3 Note 1265 Data truncated for column 't2' at row 3 Note 1265 Data truncated for column 't3' at row 3 Note 1265 Data truncated for column 't4' at row 3 Note 1265 Data truncated for column 't5' at row 3 Note 1265 Data truncated for column 't6' at row 3 Note 1265 Data truncated for column 't0' at row 4 Note 1265 Data truncated for column 't1' at row 4 Note 1265 Data truncated for column 't2' at row 4 Note 1265 Data truncated for column 't3' at row 4 Note 1265 Data truncated for column 't4' at row 4 Note 1265 Data truncated for column 't5' at row 4 Note 1265 Data truncated for column 't6' at row 4 Note 1265 Data truncated for column 't0' at row 5 Note 1265 Data truncated for column 't1' at row 5 Note 1265 Data truncated for column 't2' at row 5 Note 1265 Data truncated for column 't3' at row 5 Note 1265 Data truncated for column 't4' at row 5 Note 1265 Data truncated for column 't5' at row 5 Note 1265 Data truncated for column 't6' at row 5 Note 1265 Data truncated for column 't0' at row 6 Note 1265 Data truncated for column 't1' at row 6 Note 1265 Data truncated for column 't2' at row 6 Note 1265 Data truncated for column 't3' at row 6 Note 1265 Data truncated for column 't4' at row 6 Note 1265 Data truncated for column 't5' at row 6 Note 1265 Data truncated for column 't6' at row 6 Note 1265 Data truncated for column 't0' at row 7 Note 1265 Data truncated for column 't1' at row 7 Note 1265 Data truncated for column 't2' at row 7 Note 1265 Data truncated for column 't3' at row 7 Note 1265 Data truncated for column 't4' at row 7 Note 1265 Data truncated for column 't5' at row 7 Note 1265 Data truncated for column 't6' at row 7 SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 10:10:10.999999 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 2001-01-01 10:10:10.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 2001-01-01 10:10:10.999949 t6 10:10:10.999949 t5 10:10:10.99994 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 2001-01-01 10:10:10.999499 t6 10:10:10.999499 t5 10:10:10.99949 t4 10:10:10.9994 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 2001-01-01 10:10:10.994999 t6 10:10:10.994999 t5 10:10:10.99499 t4 10:10:10.9949 t3 10:10:10.994 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 2001-01-01 10:10:10.949999 t6 10:10:10.949999 t5 10:10:10.94999 t4 10:10:10.9499 t3 10:10:10.949 t2 10:10:10.94 t1 10:10:10.9 t0 10:10:10 a 2001-01-01 10:10:10.499999 t6 10:10:10.499999 t5 10:10:10.49999 t4 10:10:10.4999 t3 10:10:10.499 t2 10:10:10.49 t1 10:10:10.4 t0 10:10:10 DROP TABLE t1; # # Testing rounding from DECIMAL and DOUBLE to TIME(N) # CREATE TABLE t1 (a DECIMAL(30,6), t6 TIME(6), t5 TIME(5), t4 TIME(4), t3 TIME(3), t2 TIME(2), t1 TIME(1), t0 TIME); INSERT INTO t1 (a) VALUES (101010.999999); INSERT INTO t1 (a) VALUES (101010.999994); INSERT INTO t1 (a) VALUES (101010.999949); INSERT INTO t1 (a) VALUES (101010.999499); INSERT INTO t1 (a) VALUES (101010.994999); INSERT INTO t1 (a) VALUES (101010.949999); INSERT INTO t1 (a) VALUES (101010.499999); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 101010.999999 t6 10:10:10.999999 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.999949 t6 10:10:10.999949 t5 10:10:10.99994 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.999499 t6 10:10:10.999499 t5 10:10:10.99949 t4 10:10:10.9994 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.994999 t6 10:10:10.994999 t5 10:10:10.99499 t4 10:10:10.9949 t3 10:10:10.994 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.949999 t6 10:10:10.949999 t5 10:10:10.94999 t4 10:10:10.9499 t3 10:10:10.949 t2 10:10:10.94 t1 10:10:10.9 t0 10:10:10 a 101010.499999 t6 10:10:10.499999 t5 10:10:10.49999 t4 10:10:10.4999 t3 10:10:10.499 t2 10:10:10.49 t1 10:10:10.4 t0 10:10:10 ALTER TABLE t1 MODIFY a DOUBLE; UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 101010.999999 t6 10:10:10.999999 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.999994 t6 10:10:10.999993 t5 10:10:10.99999 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.999949 t6 10:10:10.999949 t5 10:10:10.99994 t4 10:10:10.9999 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.999499 t6 10:10:10.999498 t5 10:10:10.99949 t4 10:10:10.9994 t3 10:10:10.999 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.994999 t6 10:10:10.994999 t5 10:10:10.99499 t4 10:10:10.9949 t3 10:10:10.994 t2 10:10:10.99 t1 10:10:10.9 t0 10:10:10 a 101010.949999 t6 10:10:10.949999 t5 10:10:10.94999 t4 10:10:10.9499 t3 10:10:10.949 t2 10:10:10.94 t1 10:10:10.9 t0 10:10:10 a 101010.499999 t6 10:10:10.499999 t5 10:10:10.49999 t4 10:10:10.4999 t3 10:10:10.499 t2 10:10:10.49 t1 10:10:10.4 t0 10:10:10 DROP TABLE t1; # # Testing rounding when casting from DECIMAL to TIME(N) # CREATE TABLE t1 (a DECIMAL(23,4)); INSERT INTO t1 VALUES (NULL),(101010.9999),(-101010.9999); INSERT INTO t1 VALUES (9999999999999999999999.1), (999999.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT a, CAST(a AS TIME(3)) FROM t1; a CAST(a AS TIME(3)) NULL NULL 101010.9999 10:10:10.999 -101010.9999 -10:10:10.999 9999999999999999999.9999 NULL 999999.1000 NULL Warnings: Warning 1292 Truncated incorrect time value: '9999999999999999999.9999' Warning 1292 Truncated incorrect time value: '999999.1000' DROP TABLE t1; # # Testing that CAST converts days to hours, while EXTRACT/HOUR do not # SELECT CAST('1 00:00:00' as TIME), EXTRACT(HOUR FROM '1 00:00:00'), HOUR('1 00:00:00'); CAST('1 00:00:00' as TIME) EXTRACT(HOUR FROM '1 00:00:00') HOUR('1 00:00:00') 24:00:00 0 24 CREATE TABLE t1 (a VARCHAR(30)); INSERT INTO t1 VALUES ('1 00:00:00'); SELECT CAST(a AS TIME), EXTRACT(HOUR FROM a), HOUR(a) FROM t1; CAST(a AS TIME) EXTRACT(HOUR FROM a) HOUR(a) 24:00:00 0 24 DROP TABLE t1; # # Testing rounding with CAST # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:10.999999'); INSERT INTO t1 VALUES ('10:10:10.999998'); INSERT INTO t1 VALUES ('10:10:10.999997'); INSERT INTO t1 VALUES ('10:10:10.999996'); INSERT INTO t1 VALUES ('10:10:10.999995'); INSERT INTO t1 VALUES ('10:10:10.999994'); INSERT INTO t1 VALUES ('10:10:10.999993'); INSERT INTO t1 VALUES ('10:10:10.999992'); INSERT INTO t1 VALUES ('10:10:10.999991'); INSERT INTO t1 VALUES ('10:10:10.999990'); SELECT a, CAST(a AS TIME(5)) FROM t1; a CAST(a AS TIME(5)) 10:10:10.999999 10:10:10.99999 10:10:10.999998 10:10:10.99999 10:10:10.999997 10:10:10.99999 10:10:10.999996 10:10:10.99999 10:10:10.999995 10:10:10.99999 10:10:10.999994 10:10:10.99999 10:10:10.999993 10:10:10.99999 10:10:10.999992 10:10:10.99999 10:10:10.999991 10:10:10.99999 10:10:10.999990 10:10:10.99999 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(5)) FROM t1; a CAST(a AS TIME(5)) -10:10:10.999999 -10:10:10.99999 -10:10:10.999998 -10:10:10.99999 -10:10:10.999997 -10:10:10.99999 -10:10:10.999996 -10:10:10.99999 -10:10:10.999995 -10:10:10.99999 -10:10:10.999994 -10:10:10.99999 -10:10:10.999993 -10:10:10.99999 -10:10:10.999992 -10:10:10.99999 -10:10:10.999991 -10:10:10.99999 -10:10:10.999990 -10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a TIME(5)); INSERT INTO t1 VALUES ('10:10:10.99999'); INSERT INTO t1 VALUES ('10:10:10.99998'); INSERT INTO t1 VALUES ('10:10:10.99997'); INSERT INTO t1 VALUES ('10:10:10.99996'); INSERT INTO t1 VALUES ('10:10:10.99995'); INSERT INTO t1 VALUES ('10:10:10.99994'); INSERT INTO t1 VALUES ('10:10:10.99993'); INSERT INTO t1 VALUES ('10:10:10.99992'); INSERT INTO t1 VALUES ('10:10:10.99991'); INSERT INTO t1 VALUES ('10:10:10.99990'); SELECT a, CAST(a AS TIME(4)) FROM t1; a CAST(a AS TIME(4)) 10:10:10.99999 10:10:10.9999 10:10:10.99998 10:10:10.9999 10:10:10.99997 10:10:10.9999 10:10:10.99996 10:10:10.9999 10:10:10.99995 10:10:10.9999 10:10:10.99994 10:10:10.9999 10:10:10.99993 10:10:10.9999 10:10:10.99992 10:10:10.9999 10:10:10.99991 10:10:10.9999 10:10:10.99990 10:10:10.9999 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(4)) FROM t1; a CAST(a AS TIME(4)) -10:10:10.99999 -10:10:10.9999 -10:10:10.99998 -10:10:10.9999 -10:10:10.99997 -10:10:10.9999 -10:10:10.99996 -10:10:10.9999 -10:10:10.99995 -10:10:10.9999 -10:10:10.99994 -10:10:10.9999 -10:10:10.99993 -10:10:10.9999 -10:10:10.99992 -10:10:10.9999 -10:10:10.99991 -10:10:10.9999 -10:10:10.99990 -10:10:10.9999 DROP TABLE t1; CREATE TABLE t1 (a TIME(4)); INSERT INTO t1 VALUES ('10:10:10.9999'); INSERT INTO t1 VALUES ('10:10:10.9998'); INSERT INTO t1 VALUES ('10:10:10.9997'); INSERT INTO t1 VALUES ('10:10:10.9996'); INSERT INTO t1 VALUES ('10:10:10.9995'); INSERT INTO t1 VALUES ('10:10:10.9994'); INSERT INTO t1 VALUES ('10:10:10.9993'); INSERT INTO t1 VALUES ('10:10:10.9992'); INSERT INTO t1 VALUES ('10:10:10.9991'); INSERT INTO t1 VALUES ('10:10:10.9990'); SELECT a, CAST(a AS TIME(3)) FROM t1; a CAST(a AS TIME(3)) 10:10:10.9999 10:10:10.999 10:10:10.9998 10:10:10.999 10:10:10.9997 10:10:10.999 10:10:10.9996 10:10:10.999 10:10:10.9995 10:10:10.999 10:10:10.9994 10:10:10.999 10:10:10.9993 10:10:10.999 10:10:10.9992 10:10:10.999 10:10:10.9991 10:10:10.999 10:10:10.9990 10:10:10.999 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(3)) FROM t1; a CAST(a AS TIME(3)) -10:10:10.9999 -10:10:10.999 -10:10:10.9998 -10:10:10.999 -10:10:10.9997 -10:10:10.999 -10:10:10.9996 -10:10:10.999 -10:10:10.9995 -10:10:10.999 -10:10:10.9994 -10:10:10.999 -10:10:10.9993 -10:10:10.999 -10:10:10.9992 -10:10:10.999 -10:10:10.9991 -10:10:10.999 -10:10:10.9990 -10:10:10.999 DROP TABLE t1; CREATE TABLE t1 (a TIME(3)); INSERT INTO t1 VALUES ('10:10:10.999'); INSERT INTO t1 VALUES ('10:10:10.998'); INSERT INTO t1 VALUES ('10:10:10.997'); INSERT INTO t1 VALUES ('10:10:10.996'); INSERT INTO t1 VALUES ('10:10:10.995'); INSERT INTO t1 VALUES ('10:10:10.994'); INSERT INTO t1 VALUES ('10:10:10.993'); INSERT INTO t1 VALUES ('10:10:10.992'); INSERT INTO t1 VALUES ('10:10:10.991'); INSERT INTO t1 VALUES ('10:10:10.990'); SELECT a, CAST(a AS TIME(2)) FROM t1; a CAST(a AS TIME(2)) 10:10:10.999 10:10:10.99 10:10:10.998 10:10:10.99 10:10:10.997 10:10:10.99 10:10:10.996 10:10:10.99 10:10:10.995 10:10:10.99 10:10:10.994 10:10:10.99 10:10:10.993 10:10:10.99 10:10:10.992 10:10:10.99 10:10:10.991 10:10:10.99 10:10:10.990 10:10:10.99 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(2)) FROM t1; a CAST(a AS TIME(2)) -10:10:10.999 -10:10:10.99 -10:10:10.998 -10:10:10.99 -10:10:10.997 -10:10:10.99 -10:10:10.996 -10:10:10.99 -10:10:10.995 -10:10:10.99 -10:10:10.994 -10:10:10.99 -10:10:10.993 -10:10:10.99 -10:10:10.992 -10:10:10.99 -10:10:10.991 -10:10:10.99 -10:10:10.990 -10:10:10.99 DROP TABLE t1; CREATE TABLE t1 (a TIME(2)); INSERT INTO t1 VALUES ('10:10:10.99'); INSERT INTO t1 VALUES ('10:10:10.98'); INSERT INTO t1 VALUES ('10:10:10.97'); INSERT INTO t1 VALUES ('10:10:10.96'); INSERT INTO t1 VALUES ('10:10:10.95'); INSERT INTO t1 VALUES ('10:10:10.94'); INSERT INTO t1 VALUES ('10:10:10.93'); INSERT INTO t1 VALUES ('10:10:10.92'); INSERT INTO t1 VALUES ('10:10:10.91'); INSERT INTO t1 VALUES ('10:10:10.90'); SELECT a, CAST(a AS TIME(1)) FROM t1; a CAST(a AS TIME(1)) 10:10:10.99 10:10:10.9 10:10:10.98 10:10:10.9 10:10:10.97 10:10:10.9 10:10:10.96 10:10:10.9 10:10:10.95 10:10:10.9 10:10:10.94 10:10:10.9 10:10:10.93 10:10:10.9 10:10:10.92 10:10:10.9 10:10:10.91 10:10:10.9 10:10:10.90 10:10:10.9 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(1)) FROM t1; a CAST(a AS TIME(1)) -10:10:10.99 -10:10:10.9 -10:10:10.98 -10:10:10.9 -10:10:10.97 -10:10:10.9 -10:10:10.96 -10:10:10.9 -10:10:10.95 -10:10:10.9 -10:10:10.94 -10:10:10.9 -10:10:10.93 -10:10:10.9 -10:10:10.92 -10:10:10.9 -10:10:10.91 -10:10:10.9 -10:10:10.90 -10:10:10.9 DROP TABLE t1; CREATE TABLE t1 (a TIME(1)); INSERT INTO t1 VALUES ('10:10:10.9'); INSERT INTO t1 VALUES ('10:10:10.8'); INSERT INTO t1 VALUES ('10:10:10.7'); INSERT INTO t1 VALUES ('10:10:10.6'); INSERT INTO t1 VALUES ('10:10:10.5'); INSERT INTO t1 VALUES ('10:10:10.4'); INSERT INTO t1 VALUES ('10:10:10.3'); INSERT INTO t1 VALUES ('10:10:10.2'); INSERT INTO t1 VALUES ('10:10:10.1'); INSERT INTO t1 VALUES ('10:10:10.0'); SELECT a, CAST(a AS TIME) FROM t1; a CAST(a AS TIME) 10:10:10.9 10:10:10 10:10:10.8 10:10:10 10:10:10.7 10:10:10 10:10:10.6 10:10:10 10:10:10.5 10:10:10 10:10:10.4 10:10:10 10:10:10.3 10:10:10 10:10:10.2 10:10:10 10:10:10.1 10:10:10 10:10:10.0 10:10:10 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME) FROM t1; a CAST(a AS TIME) -10:10:10.9 -10:10:10 -10:10:10.8 -10:10:10 -10:10:10.7 -10:10:10 -10:10:10.6 -10:10:10 -10:10:10.5 -10:10:10 -10:10:10.4 -10:10:10 -10:10:10.3 -10:10:10 -10:10:10.2 -10:10:10 -10:10:10.1 -10:10:10 -10:10:10.0 -10:10:10 DROP TABLE t1; # # Testing rounding with FROM_UNIXTIME # SET time_zone='+00:00'; CREATE TABLE t1 (a DECIMAL(20,7)); INSERT INTO t1 VALUES (2147483647.999999), (2147483647.9999990), (2147483647.9999991), (2147483647.9999992), (2147483647.9999993), (2147483647.9999994), (2147483647.9999995), (2147483647.9999996), (2147483647.9999997), (2147483647.9999998), (2147483647.9999999); SELECT a, FROM_UNIXTIME(a) FROM t1; a FROM_UNIXTIME(a) 2147483647.9999990 2038-01-19 03:14:07.999999 2147483647.9999990 2038-01-19 03:14:07.999999 2147483647.9999991 2038-01-19 03:14:07.999999 2147483647.9999992 2038-01-19 03:14:07.999999 2147483647.9999993 2038-01-19 03:14:07.999999 2147483647.9999994 2038-01-19 03:14:07.999999 2147483647.9999995 2038-01-19 03:14:07.999999 2147483647.9999996 2038-01-19 03:14:07.999999 2147483647.9999997 2038-01-19 03:14:07.999999 2147483647.9999998 2038-01-19 03:14:07.999999 2147483647.9999999 2038-01-19 03:14:07.999999 DROP TABLE t1; SET time_zone=DEFAULT; # # Testing internal representation format for TIME(N) # CREATE TABLE t1 (a6 VARCHAR(32)); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000002'); INSERT INTO t1 VALUES ('00:00:00.000003'); INSERT INTO t1 VALUES ('00:00:00.000004'); INSERT INTO t1 VALUES ('00:00:00.000005'); INSERT INTO t1 VALUES ('00:00:00.000006'); INSERT INTO t1 VALUES ('00:00:00.000007'); INSERT INTO t1 VALUES ('00:00:00.000008'); INSERT INTO t1 VALUES ('00:00:00.000009'); INSERT INTO t1 VALUES ('00:00:00.000010'); INSERT INTO t1 VALUES ('00:00:00.000011'); INSERT INTO t1 VALUES ('00:00:00.000012'); INSERT INTO t1 VALUES ('00:00:00.000013'); INSERT INTO t1 VALUES ('00:00:00.000014'); INSERT INTO t1 VALUES ('00:00:00.000015'); INSERT INTO t1 VALUES ('00:00:00.000016'); INSERT INTO t1 VALUES ('00:00:00.000099'); INSERT INTO t1 VALUES ('00:00:00.000999'); INSERT INTO t1 VALUES ('00:00:00.009999'); INSERT INTO t1 VALUES ('00:00:00.099999'); INSERT INTO t1 VALUES ('00:00:00.100000'); INSERT INTO t1 VALUES ('00:00:00.900000'); INSERT INTO t1 VALUES ('00:00:00.990000'); INSERT INTO t1 VALUES ('00:00:00.999000'); INSERT INTO t1 VALUES ('00:00:00.999900'); INSERT INTO t1 VALUES ('00:00:00.999990'); INSERT INTO t1 VALUES ('00:00:00.999999'); INSERT INTO t1 VALUES ('00:00:01.000000'); INSERT INTO t1 VALUES ('00:00:01.000001'); INSERT INTO t1 VALUES ('00:00:01.000002'); INSERT INTO t1 VALUES ('00:00:01.000003'); INSERT INTO t1 VALUES ('00:00:01.000004'); INSERT INTO t1 VALUES ('00:00:01.000005'); INSERT INTO t1 VALUES ('00:00:01.000006'); INSERT INTO t1 VALUES ('00:00:01.000007'); INSERT INTO t1 VALUES ('00:00:01.000008'); INSERT INTO t1 VALUES ('00:00:01.000009'); INSERT INTO t1 VALUES ('00:00:01.000010'); INSERT INTO t1 VALUES ('00:00:01.000011'); INSERT INTO t1 VALUES ('00:00:01.000012'); INSERT INTO t1 VALUES ('00:00:01.000013'); INSERT INTO t1 VALUES ('00:00:01.000014'); INSERT INTO t1 VALUES ('00:00:01.000015'); INSERT INTO t1 VALUES ('00:00:01.000016'); INSERT INTO t1 VALUES ('00:00:01.000099'); INSERT INTO t1 VALUES ('00:00:01.000999'); INSERT INTO t1 VALUES ('00:00:01.009999'); INSERT INTO t1 VALUES ('00:00:01.090000'); INSERT INTO t1 VALUES ('00:00:01.099999'); INSERT INTO t1 VALUES ('00:00:01.100000'); INSERT INTO t1 VALUES ('00:00:01.900000'); INSERT INTO t1 VALUES ('00:00:01.990000'); INSERT INTO t1 VALUES ('00:00:01.999000'); INSERT INTO t1 VALUES ('00:00:01.999900'); INSERT INTO t1 VALUES ('00:00:01.999990'); INSERT INTO t1 VALUES ('00:00:01.999999'); INSERT INTO t1 VALUES ('00:01:00.000001'); INSERT INTO t1 VALUES ('00:01:00.000008'); INSERT INTO t1 VALUES ('00:01:00.000015'); INSERT INTO t1 VALUES ('00:01:00.000016'); INSERT INTO t1 VALUES ('00:01:00.000099'); INSERT INTO t1 VALUES ('00:01:00.000999'); INSERT INTO t1 VALUES ('00:01:00.009999'); INSERT INTO t1 VALUES ('00:01:00.099999'); INSERT INTO t1 VALUES ('00:01:00.100000'); INSERT INTO t1 VALUES ('00:01:00.900000'); INSERT INTO t1 VALUES ('00:01:00.999999'); INSERT INTO t1 VALUES ('01:00:00.000001'); INSERT INTO t1 VALUES ('01:00:00.000008'); INSERT INTO t1 VALUES ('01:00:00.000015'); INSERT INTO t1 VALUES ('01:00:00.000016'); INSERT INTO t1 VALUES ('01:00:00.000099'); INSERT INTO t1 VALUES ('01:00:00.000999'); INSERT INTO t1 VALUES ('01:00:00.009999'); INSERT INTO t1 VALUES ('01:00:00.099999'); INSERT INTO t1 VALUES ('01:00:00.100000'); INSERT INTO t1 VALUES ('01:00:00.900000'); INSERT INTO t1 VALUES ('01:00:00.990000'); INSERT INTO t1 VALUES ('01:00:00.999000'); INSERT INTO t1 VALUES ('01:00:00.999900'); INSERT INTO t1 VALUES ('01:00:00.999990'); INSERT INTO t1 VALUES ('01:00:00.999999'); INSERT INTO t1 VALUES ('838:59:58.000001'); INSERT INTO t1 VALUES ('838:59:58.000008'); INSERT INTO t1 VALUES ('838:59:58.000015'); INSERT INTO t1 VALUES ('838:59:58.000016'); INSERT INTO t1 VALUES ('838:59:58.000099'); INSERT INTO t1 VALUES ('838:59:58.000999'); INSERT INTO t1 VALUES ('838:59:58.009999'); INSERT INTO t1 VALUES ('838:59:58.099999'); INSERT INTO t1 VALUES ('838:59:58.100000'); INSERT INTO t1 VALUES ('838:59:58.900000'); INSERT INTO t1 VALUES ('838:59:58.990000'); INSERT INTO t1 VALUES ('838:59:58.999000'); INSERT INTO t1 VALUES ('838:59:58.999900'); INSERT INTO t1 VALUES ('838:59:58.999990'); INSERT INTO t1 VALUES ('838:59:58.999999'); INSERT INTO t1 VALUES ('838:59:59.000000'); INSERT INTO t1 SELECT CONCAT('-', a6) FROM t1; ALTER TABLE t1 ADD a0 VARCHAR(32), ADD a1 VARCHAR(32), ADD a2 VARCHAR(32), ADD a3 VARCHAR(32), ADD a4 VARCHAR(32), ADD a5 VARCHAR(32), ADD t0 TIME(0), ADD t1 TIME(1), ADD t2 TIME(2), ADD t3 TIME(3), ADD t4 TIME(4), ADD t5 TIME(5), ADD t6 TIME(6); UPDATE t1 SET a0=LEFT(a6, LENGTH(a6) - 6), a1=LEFT(a6, LENGTH(a6) - 5), a2=LEFT(a6, LENGTH(a6) - 4), a3=LEFT(a6, LENGTH(a6) - 3), a4=LEFT(a6, LENGTH(a6) - 2), a5=LEFT(a6, LENGTH(a6) - 1); UPDATE t1 SET t0=a0, t1=a1, t2=a2, t3=a3, t4=a4, t5=a5, t6= a6; SELECT a6, t6, HEX(WEIGHT_STRING(t6)) FROM t1 ORDER BY t6; a6 t6 HEX(WEIGHT_STRING(t6)) -838:59:59.000000 -838:59:59.000000 2D3833383A35393A35392E303030303030 -838:59:58.999999 -838:59:58.999999 2D3833383A35393A35382E393939393939 -838:59:58.999990 -838:59:58.999990 2D3833383A35393A35382E393939393930 -838:59:58.999900 -838:59:58.999900 2D3833383A35393A35382E393939393030 -838:59:58.999000 -838:59:58.999000 2D3833383A35393A35382E393939303030 -838:59:58.990000 -838:59:58.990000 2D3833383A35393A35382E393930303030 -838:59:58.900000 -838:59:58.900000 2D3833383A35393A35382E393030303030 -838:59:58.100000 -838:59:58.100000 2D3833383A35393A35382E313030303030 -838:59:58.099999 -838:59:58.099999 2D3833383A35393A35382E303939393939 -838:59:58.009999 -838:59:58.009999 2D3833383A35393A35382E303039393939 -838:59:58.000999 -838:59:58.000999 2D3833383A35393A35382E303030393939 -838:59:58.000099 -838:59:58.000099 2D3833383A35393A35382E303030303939 -838:59:58.000016 -838:59:58.000016 2D3833383A35393A35382E303030303136 -838:59:58.000015 -838:59:58.000015 2D3833383A35393A35382E303030303135 -838:59:58.000008 -838:59:58.000008 2D3833383A35393A35382E303030303038 -838:59:58.000001 -838:59:58.000001 2D3833383A35393A35382E303030303031 -01:00:00.999999 -01:00:00.999999 2D30313A30303A30302E393939393939 -01:00:00.999990 -01:00:00.999990 2D30313A30303A30302E393939393930 -01:00:00.999900 -01:00:00.999900 2D30313A30303A30302E393939393030 -01:00:00.999000 -01:00:00.999000 2D30313A30303A30302E393939303030 -01:00:00.990000 -01:00:00.990000 2D30313A30303A30302E393930303030 -01:00:00.900000 -01:00:00.900000 2D30313A30303A30302E393030303030 -01:00:00.100000 -01:00:00.100000 2D30313A30303A30302E313030303030 -01:00:00.099999 -01:00:00.099999 2D30313A30303A30302E303939393939 -01:00:00.009999 -01:00:00.009999 2D30313A30303A30302E303039393939 -01:00:00.000999 -01:00:00.000999 2D30313A30303A30302E303030393939 -01:00:00.000099 -01:00:00.000099 2D30313A30303A30302E303030303939 -01:00:00.000016 -01:00:00.000016 2D30313A30303A30302E303030303136 -01:00:00.000015 -01:00:00.000015 2D30313A30303A30302E303030303135 -01:00:00.000008 -01:00:00.000008 2D30313A30303A30302E303030303038 -01:00:00.000001 -01:00:00.000001 2D30313A30303A30302E303030303031 -00:01:00.999999 -00:01:00.999999 2D30303A30313A30302E393939393939 -00:01:00.900000 -00:01:00.900000 2D30303A30313A30302E393030303030 -00:01:00.100000 -00:01:00.100000 2D30303A30313A30302E313030303030 -00:01:00.099999 -00:01:00.099999 2D30303A30313A30302E303939393939 -00:01:00.009999 -00:01:00.009999 2D30303A30313A30302E303039393939 -00:01:00.000999 -00:01:00.000999 2D30303A30313A30302E303030393939 -00:01:00.000099 -00:01:00.000099 2D30303A30313A30302E303030303939 -00:01:00.000016 -00:01:00.000016 2D30303A30313A30302E303030303136 -00:01:00.000015 -00:01:00.000015 2D30303A30313A30302E303030303135 -00:01:00.000008 -00:01:00.000008 2D30303A30313A30302E303030303038 -00:01:00.000001 -00:01:00.000001 2D30303A30313A30302E303030303031 -00:00:01.999999 -00:00:01.999999 2D30303A30303A30312E393939393939 -00:00:01.999990 -00:00:01.999990 2D30303A30303A30312E393939393930 -00:00:01.999900 -00:00:01.999900 2D30303A30303A30312E393939393030 -00:00:01.999000 -00:00:01.999000 2D30303A30303A30312E393939303030 -00:00:01.990000 -00:00:01.990000 2D30303A30303A30312E393930303030 -00:00:01.900000 -00:00:01.900000 2D30303A30303A30312E393030303030 -00:00:01.100000 -00:00:01.100000 2D30303A30303A30312E313030303030 -00:00:01.099999 -00:00:01.099999 2D30303A30303A30312E303939393939 -00:00:01.090000 -00:00:01.090000 2D30303A30303A30312E303930303030 -00:00:01.009999 -00:00:01.009999 2D30303A30303A30312E303039393939 -00:00:01.000999 -00:00:01.000999 2D30303A30303A30312E303030393939 -00:00:01.000099 -00:00:01.000099 2D30303A30303A30312E303030303939 -00:00:01.000016 -00:00:01.000016 2D30303A30303A30312E303030303136 -00:00:01.000015 -00:00:01.000015 2D30303A30303A30312E303030303135 -00:00:01.000014 -00:00:01.000014 2D30303A30303A30312E303030303134 -00:00:01.000013 -00:00:01.000013 2D30303A30303A30312E303030303133 -00:00:01.000012 -00:00:01.000012 2D30303A30303A30312E303030303132 -00:00:01.000011 -00:00:01.000011 2D30303A30303A30312E303030303131 -00:00:01.000010 -00:00:01.000010 2D30303A30303A30312E303030303130 -00:00:01.000009 -00:00:01.000009 2D30303A30303A30312E303030303039 -00:00:01.000008 -00:00:01.000008 2D30303A30303A30312E303030303038 -00:00:01.000007 -00:00:01.000007 2D30303A30303A30312E303030303037 -00:00:01.000006 -00:00:01.000006 2D30303A30303A30312E303030303036 -00:00:01.000005 -00:00:01.000005 2D30303A30303A30312E303030303035 -00:00:01.000004 -00:00:01.000004 2D30303A30303A30312E303030303034 -00:00:01.000003 -00:00:01.000003 2D30303A30303A30312E303030303033 -00:00:01.000002 -00:00:01.000002 2D30303A30303A30312E303030303032 -00:00:01.000001 -00:00:01.000001 2D30303A30303A30312E303030303031 -00:00:01.000000 -00:00:01.000000 2D30303A30303A30312E303030303030 -00:00:00.999999 -00:00:00.999999 2D30303A30303A30302E393939393939 -00:00:00.999990 -00:00:00.999990 2D30303A30303A30302E393939393930 -00:00:00.999900 -00:00:00.999900 2D30303A30303A30302E393939393030 -00:00:00.999000 -00:00:00.999000 2D30303A30303A30302E393939303030 -00:00:00.990000 -00:00:00.990000 2D30303A30303A30302E393930303030 -00:00:00.900000 -00:00:00.900000 2D30303A30303A30302E393030303030 -00:00:00.100000 -00:00:00.100000 2D30303A30303A30302E313030303030 -00:00:00.099999 -00:00:00.099999 2D30303A30303A30302E303939393939 -00:00:00.009999 -00:00:00.009999 2D30303A30303A30302E303039393939 -00:00:00.000999 -00:00:00.000999 2D30303A30303A30302E303030393939 -00:00:00.000099 -00:00:00.000099 2D30303A30303A30302E303030303939 -00:00:00.000016 -00:00:00.000016 2D30303A30303A30302E303030303136 -00:00:00.000015 -00:00:00.000015 2D30303A30303A30302E303030303135 -00:00:00.000014 -00:00:00.000014 2D30303A30303A30302E303030303134 -00:00:00.000013 -00:00:00.000013 2D30303A30303A30302E303030303133 -00:00:00.000012 -00:00:00.000012 2D30303A30303A30302E303030303132 -00:00:00.000011 -00:00:00.000011 2D30303A30303A30302E303030303131 -00:00:00.000010 -00:00:00.000010 2D30303A30303A30302E303030303130 -00:00:00.000009 -00:00:00.000009 2D30303A30303A30302E303030303039 -00:00:00.000008 -00:00:00.000008 2D30303A30303A30302E303030303038 -00:00:00.000007 -00:00:00.000007 2D30303A30303A30302E303030303037 -00:00:00.000006 -00:00:00.000006 2D30303A30303A30302E303030303036 -00:00:00.000005 -00:00:00.000005 2D30303A30303A30302E303030303035 -00:00:00.000004 -00:00:00.000004 2D30303A30303A30302E303030303034 -00:00:00.000003 -00:00:00.000003 2D30303A30303A30302E303030303033 -00:00:00.000002 -00:00:00.000002 2D30303A30303A30302E303030303032 -00:00:00.000001 -00:00:00.000001 2D30303A30303A30302E303030303031 -00:00:00.000000 00:00:00.000000 30303A30303A30302E303030303030 00:00:00.000000 00:00:00.000000 30303A30303A30302E303030303030 00:00:00.000001 00:00:00.000001 30303A30303A30302E303030303031 00:00:00.000002 00:00:00.000002 30303A30303A30302E303030303032 00:00:00.000003 00:00:00.000003 30303A30303A30302E303030303033 00:00:00.000004 00:00:00.000004 30303A30303A30302E303030303034 00:00:00.000005 00:00:00.000005 30303A30303A30302E303030303035 00:00:00.000006 00:00:00.000006 30303A30303A30302E303030303036 00:00:00.000007 00:00:00.000007 30303A30303A30302E303030303037 00:00:00.000008 00:00:00.000008 30303A30303A30302E303030303038 00:00:00.000009 00:00:00.000009 30303A30303A30302E303030303039 00:00:00.000010 00:00:00.000010 30303A30303A30302E303030303130 00:00:00.000011 00:00:00.000011 30303A30303A30302E303030303131 00:00:00.000012 00:00:00.000012 30303A30303A30302E303030303132 00:00:00.000013 00:00:00.000013 30303A30303A30302E303030303133 00:00:00.000014 00:00:00.000014 30303A30303A30302E303030303134 00:00:00.000015 00:00:00.000015 30303A30303A30302E303030303135 00:00:00.000016 00:00:00.000016 30303A30303A30302E303030303136 00:00:00.000099 00:00:00.000099 30303A30303A30302E303030303939 00:00:00.000999 00:00:00.000999 30303A30303A30302E303030393939 00:00:00.009999 00:00:00.009999 30303A30303A30302E303039393939 00:00:00.099999 00:00:00.099999 30303A30303A30302E303939393939 00:00:00.100000 00:00:00.100000 30303A30303A30302E313030303030 00:00:00.900000 00:00:00.900000 30303A30303A30302E393030303030 00:00:00.990000 00:00:00.990000 30303A30303A30302E393930303030 00:00:00.999000 00:00:00.999000 30303A30303A30302E393939303030 00:00:00.999900 00:00:00.999900 30303A30303A30302E393939393030 00:00:00.999990 00:00:00.999990 30303A30303A30302E393939393930 00:00:00.999999 00:00:00.999999 30303A30303A30302E393939393939 00:00:01.000000 00:00:01.000000 30303A30303A30312E303030303030 00:00:01.000001 00:00:01.000001 30303A30303A30312E303030303031 00:00:01.000002 00:00:01.000002 30303A30303A30312E303030303032 00:00:01.000003 00:00:01.000003 30303A30303A30312E303030303033 00:00:01.000004 00:00:01.000004 30303A30303A30312E303030303034 00:00:01.000005 00:00:01.000005 30303A30303A30312E303030303035 00:00:01.000006 00:00:01.000006 30303A30303A30312E303030303036 00:00:01.000007 00:00:01.000007 30303A30303A30312E303030303037 00:00:01.000008 00:00:01.000008 30303A30303A30312E303030303038 00:00:01.000009 00:00:01.000009 30303A30303A30312E303030303039 00:00:01.000010 00:00:01.000010 30303A30303A30312E303030303130 00:00:01.000011 00:00:01.000011 30303A30303A30312E303030303131 00:00:01.000012 00:00:01.000012 30303A30303A30312E303030303132 00:00:01.000013 00:00:01.000013 30303A30303A30312E303030303133 00:00:01.000014 00:00:01.000014 30303A30303A30312E303030303134 00:00:01.000015 00:00:01.000015 30303A30303A30312E303030303135 00:00:01.000016 00:00:01.000016 30303A30303A30312E303030303136 00:00:01.000099 00:00:01.000099 30303A30303A30312E303030303939 00:00:01.000999 00:00:01.000999 30303A30303A30312E303030393939 00:00:01.009999 00:00:01.009999 30303A30303A30312E303039393939 00:00:01.090000 00:00:01.090000 30303A30303A30312E303930303030 00:00:01.099999 00:00:01.099999 30303A30303A30312E303939393939 00:00:01.100000 00:00:01.100000 30303A30303A30312E313030303030 00:00:01.900000 00:00:01.900000 30303A30303A30312E393030303030 00:00:01.990000 00:00:01.990000 30303A30303A30312E393930303030 00:00:01.999000 00:00:01.999000 30303A30303A30312E393939303030 00:00:01.999900 00:00:01.999900 30303A30303A30312E393939393030 00:00:01.999990 00:00:01.999990 30303A30303A30312E393939393930 00:00:01.999999 00:00:01.999999 30303A30303A30312E393939393939 00:01:00.000001 00:01:00.000001 30303A30313A30302E303030303031 00:01:00.000008 00:01:00.000008 30303A30313A30302E303030303038 00:01:00.000015 00:01:00.000015 30303A30313A30302E303030303135 00:01:00.000016 00:01:00.000016 30303A30313A30302E303030303136 00:01:00.000099 00:01:00.000099 30303A30313A30302E303030303939 00:01:00.000999 00:01:00.000999 30303A30313A30302E303030393939 00:01:00.009999 00:01:00.009999 30303A30313A30302E303039393939 00:01:00.099999 00:01:00.099999 30303A30313A30302E303939393939 00:01:00.100000 00:01:00.100000 30303A30313A30302E313030303030 00:01:00.900000 00:01:00.900000 30303A30313A30302E393030303030 00:01:00.999999 00:01:00.999999 30303A30313A30302E393939393939 01:00:00.000001 01:00:00.000001 30313A30303A30302E303030303031 01:00:00.000008 01:00:00.000008 30313A30303A30302E303030303038 01:00:00.000015 01:00:00.000015 30313A30303A30302E303030303135 01:00:00.000016 01:00:00.000016 30313A30303A30302E303030303136 01:00:00.000099 01:00:00.000099 30313A30303A30302E303030303939 01:00:00.000999 01:00:00.000999 30313A30303A30302E303030393939 01:00:00.009999 01:00:00.009999 30313A30303A30302E303039393939 01:00:00.099999 01:00:00.099999 30313A30303A30302E303939393939 01:00:00.100000 01:00:00.100000 30313A30303A30302E313030303030 01:00:00.900000 01:00:00.900000 30313A30303A30302E393030303030 01:00:00.990000 01:00:00.990000 30313A30303A30302E393930303030 01:00:00.999000 01:00:00.999000 30313A30303A30302E393939303030 01:00:00.999900 01:00:00.999900 30313A30303A30302E393939393030 01:00:00.999990 01:00:00.999990 30313A30303A30302E393939393930 01:00:00.999999 01:00:00.999999 30313A30303A30302E393939393939 838:59:58.000001 838:59:58.000001 3833383A35393A35382E303030303031 838:59:58.000008 838:59:58.000008 3833383A35393A35382E303030303038 838:59:58.000015 838:59:58.000015 3833383A35393A35382E303030303135 838:59:58.000016 838:59:58.000016 3833383A35393A35382E303030303136 838:59:58.000099 838:59:58.000099 3833383A35393A35382E303030303939 838:59:58.000999 838:59:58.000999 3833383A35393A35382E303030393939 838:59:58.009999 838:59:58.009999 3833383A35393A35382E303039393939 838:59:58.099999 838:59:58.099999 3833383A35393A35382E303939393939 838:59:58.100000 838:59:58.100000 3833383A35393A35382E313030303030 838:59:58.900000 838:59:58.900000 3833383A35393A35382E393030303030 838:59:58.990000 838:59:58.990000 3833383A35393A35382E393930303030 838:59:58.999000 838:59:58.999000 3833383A35393A35382E393939303030 838:59:58.999900 838:59:58.999900 3833383A35393A35382E393939393030 838:59:58.999990 838:59:58.999990 3833383A35393A35382E393939393930 838:59:58.999999 838:59:58.999999 3833383A35393A35382E393939393939 838:59:59.000000 838:59:59.000000 3833383A35393A35392E303030303030 SELECT a5, t5, HEX(WEIGHT_STRING(t5)) FROM t1 ORDER BY t5, a6; a5 t5 HEX(WEIGHT_STRING(t5)) 838:59:58.00000 838:59:58.00000 3833383A35393A35382E3030303030 838:59:58.00000 838:59:58.00000 3833383A35393A35382E3030303030 838:59:58.00001 838:59:58.00001 3833383A35393A35382E3030303031 838:59:58.00001 838:59:58.00001 3833383A35393A35382E3030303031 838:59:58.00009 838:59:58.00009 3833383A35393A35382E3030303039 838:59:58.00099 838:59:58.00099 3833383A35393A35382E3030303939 838:59:58.00999 838:59:58.00999 3833383A35393A35382E3030393939 838:59:58.09999 838:59:58.09999 3833383A35393A35382E3039393939 838:59:58.10000 838:59:58.10000 3833383A35393A35382E3130303030 838:59:58.90000 838:59:58.90000 3833383A35393A35382E3930303030 838:59:58.99000 838:59:58.99000 3833383A35393A35382E3939303030 838:59:58.99900 838:59:58.99900 3833383A35393A35382E3939393030 838:59:58.99990 838:59:58.99990 3833383A35393A35382E3939393930 838:59:58.99999 838:59:58.99999 3833383A35393A35382E3939393939 838:59:58.99999 838:59:58.99999 3833383A35393A35382E3939393939 838:59:59.00000 838:59:59.00000 3833383A35393A35392E3030303030 -838:59:59.00000 -838:59:59.00000 2D3833383A35393A35392E3030303030 -838:59:58.99999 -838:59:58.99999 2D3833383A35393A35382E3939393939 -838:59:58.99999 -838:59:58.99999 2D3833383A35393A35382E3939393939 -838:59:58.99990 -838:59:58.99990 2D3833383A35393A35382E3939393930 -838:59:58.99900 -838:59:58.99900 2D3833383A35393A35382E3939393030 -838:59:58.99000 -838:59:58.99000 2D3833383A35393A35382E3939303030 -838:59:58.90000 -838:59:58.90000 2D3833383A35393A35382E3930303030 -838:59:58.10000 -838:59:58.10000 2D3833383A35393A35382E3130303030 -838:59:58.09999 -838:59:58.09999 2D3833383A35393A35382E3039393939 -838:59:58.00999 -838:59:58.00999 2D3833383A35393A35382E3030393939 -838:59:58.00099 -838:59:58.00099 2D3833383A35393A35382E3030303939 -838:59:58.00009 -838:59:58.00009 2D3833383A35393A35382E3030303039 -838:59:58.00001 -838:59:58.00001 2D3833383A35393A35382E3030303031 -838:59:58.00001 -838:59:58.00001 2D3833383A35393A35382E3030303031 -838:59:58.00000 -838:59:58.00000 2D3833383A35393A35382E3030303030 -838:59:58.00000 -838:59:58.00000 2D3833383A35393A35382E3030303030 -01:00:00.99999 -01:00:00.99999 2D30313A30303A30302E3939393939 -01:00:00.99999 -01:00:00.99999 2D30313A30303A30302E3939393939 -01:00:00.99990 -01:00:00.99990 2D30313A30303A30302E3939393930 -01:00:00.99900 -01:00:00.99900 2D30313A30303A30302E3939393030 -01:00:00.99000 -01:00:00.99000 2D30313A30303A30302E3939303030 -01:00:00.90000 -01:00:00.90000 2D30313A30303A30302E3930303030 -01:00:00.10000 -01:00:00.10000 2D30313A30303A30302E3130303030 -01:00:00.09999 -01:00:00.09999 2D30313A30303A30302E3039393939 -01:00:00.00999 -01:00:00.00999 2D30313A30303A30302E3030393939 -01:00:00.00099 -01:00:00.00099 2D30313A30303A30302E3030303939 -01:00:00.00009 -01:00:00.00009 2D30313A30303A30302E3030303039 -01:00:00.00001 -01:00:00.00001 2D30313A30303A30302E3030303031 -01:00:00.00001 -01:00:00.00001 2D30313A30303A30302E3030303031 -01:00:00.00000 -01:00:00.00000 2D30313A30303A30302E3030303030 -01:00:00.00000 -01:00:00.00000 2D30313A30303A30302E3030303030 -00:01:00.99999 -00:01:00.99999 2D30303A30313A30302E3939393939 -00:01:00.90000 -00:01:00.90000 2D30303A30313A30302E3930303030 -00:01:00.10000 -00:01:00.10000 2D30303A30313A30302E3130303030 -00:01:00.09999 -00:01:00.09999 2D30303A30313A30302E3039393939 -00:01:00.00999 -00:01:00.00999 2D30303A30313A30302E3030393939 -00:01:00.00099 -00:01:00.00099 2D30303A30313A30302E3030303939 -00:01:00.00009 -00:01:00.00009 2D30303A30313A30302E3030303039 -00:01:00.00001 -00:01:00.00001 2D30303A30313A30302E3030303031 -00:01:00.00001 -00:01:00.00001 2D30303A30313A30302E3030303031 -00:01:00.00000 -00:01:00.00000 2D30303A30313A30302E3030303030 -00:01:00.00000 -00:01:00.00000 2D30303A30313A30302E3030303030 -00:00:01.99999 -00:00:01.99999 2D30303A30303A30312E3939393939 -00:00:01.99999 -00:00:01.99999 2D30303A30303A30312E3939393939 -00:00:01.99990 -00:00:01.99990 2D30303A30303A30312E3939393930 -00:00:01.99900 -00:00:01.99900 2D30303A30303A30312E3939393030 -00:00:01.99000 -00:00:01.99000 2D30303A30303A30312E3939303030 -00:00:01.90000 -00:00:01.90000 2D30303A30303A30312E3930303030 -00:00:01.10000 -00:00:01.10000 2D30303A30303A30312E3130303030 -00:00:01.09999 -00:00:01.09999 2D30303A30303A30312E3039393939 -00:00:01.09000 -00:00:01.09000 2D30303A30303A30312E3039303030 -00:00:01.00999 -00:00:01.00999 2D30303A30303A30312E3030393939 -00:00:01.00099 -00:00:01.00099 2D30303A30303A30312E3030303939 -00:00:01.00009 -00:00:01.00009 2D30303A30303A30312E3030303039 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00001 -00:00:01.00001 2D30303A30303A30312E3030303031 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:01.00000 -00:00:01.00000 2D30303A30303A30312E3030303030 -00:00:00.99999 -00:00:00.99999 2D30303A30303A30302E3939393939 -00:00:00.99999 -00:00:00.99999 2D30303A30303A30302E3939393939 -00:00:00.99990 -00:00:00.99990 2D30303A30303A30302E3939393930 -00:00:00.99900 -00:00:00.99900 2D30303A30303A30302E3939393030 -00:00:00.99000 -00:00:00.99000 2D30303A30303A30302E3939303030 -00:00:00.90000 -00:00:00.90000 2D30303A30303A30302E3930303030 -00:00:00.10000 -00:00:00.10000 2D30303A30303A30302E3130303030 -00:00:00.09999 -00:00:00.09999 2D30303A30303A30302E3039393939 -00:00:00.00999 -00:00:00.00999 2D30303A30303A30302E3030393939 -00:00:00.00099 -00:00:00.00099 2D30303A30303A30302E3030303939 -00:00:00.00009 -00:00:00.00009 2D30303A30303A30302E3030303039 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00001 -00:00:00.00001 2D30303A30303A30302E3030303031 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 -00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00000 00:00:00.00000 30303A30303A30302E3030303030 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00001 00:00:00.00001 30303A30303A30302E3030303031 00:00:00.00009 00:00:00.00009 30303A30303A30302E3030303039 00:00:00.00099 00:00:00.00099 30303A30303A30302E3030303939 00:00:00.00999 00:00:00.00999 30303A30303A30302E3030393939 00:00:00.09999 00:00:00.09999 30303A30303A30302E3039393939 00:00:00.10000 00:00:00.10000 30303A30303A30302E3130303030 00:00:00.90000 00:00:00.90000 30303A30303A30302E3930303030 00:00:00.99000 00:00:00.99000 30303A30303A30302E3939303030 00:00:00.99900 00:00:00.99900 30303A30303A30302E3939393030 00:00:00.99990 00:00:00.99990 30303A30303A30302E3939393930 00:00:00.99999 00:00:00.99999 30303A30303A30302E3939393939 00:00:00.99999 00:00:00.99999 30303A30303A30302E3939393939 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00000 00:00:01.00000 30303A30303A30312E3030303030 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00001 00:00:01.00001 30303A30303A30312E3030303031 00:00:01.00009 00:00:01.00009 30303A30303A30312E3030303039 00:00:01.00099 00:00:01.00099 30303A30303A30312E3030303939 00:00:01.00999 00:00:01.00999 30303A30303A30312E3030393939 00:00:01.09000 00:00:01.09000 30303A30303A30312E3039303030 00:00:01.09999 00:00:01.09999 30303A30303A30312E3039393939 00:00:01.10000 00:00:01.10000 30303A30303A30312E3130303030 00:00:01.90000 00:00:01.90000 30303A30303A30312E3930303030 00:00:01.99000 00:00:01.99000 30303A30303A30312E3939303030 00:00:01.99900 00:00:01.99900 30303A30303A30312E3939393030 00:00:01.99990 00:00:01.99990 30303A30303A30312E3939393930 00:00:01.99999 00:00:01.99999 30303A30303A30312E3939393939 00:00:01.99999 00:00:01.99999 30303A30303A30312E3939393939 00:01:00.00000 00:01:00.00000 30303A30313A30302E3030303030 00:01:00.00000 00:01:00.00000 30303A30313A30302E3030303030 00:01:00.00001 00:01:00.00001 30303A30313A30302E3030303031 00:01:00.00001 00:01:00.00001 30303A30313A30302E3030303031 00:01:00.00009 00:01:00.00009 30303A30313A30302E3030303039 00:01:00.00099 00:01:00.00099 30303A30313A30302E3030303939 00:01:00.00999 00:01:00.00999 30303A30313A30302E3030393939 00:01:00.09999 00:01:00.09999 30303A30313A30302E3039393939 00:01:00.10000 00:01:00.10000 30303A30313A30302E3130303030 00:01:00.90000 00:01:00.90000 30303A30313A30302E3930303030 00:01:00.99999 00:01:00.99999 30303A30313A30302E3939393939 01:00:00.00000 01:00:00.00000 30313A30303A30302E3030303030 01:00:00.00000 01:00:00.00000 30313A30303A30302E3030303030 01:00:00.00001 01:00:00.00001 30313A30303A30302E3030303031 01:00:00.00001 01:00:00.00001 30313A30303A30302E3030303031 01:00:00.00009 01:00:00.00009 30313A30303A30302E3030303039 01:00:00.00099 01:00:00.00099 30313A30303A30302E3030303939 01:00:00.00999 01:00:00.00999 30313A30303A30302E3030393939 01:00:00.09999 01:00:00.09999 30313A30303A30302E3039393939 01:00:00.10000 01:00:00.10000 30313A30303A30302E3130303030 01:00:00.90000 01:00:00.90000 30313A30303A30302E3930303030 01:00:00.99000 01:00:00.99000 30313A30303A30302E3939303030 01:00:00.99900 01:00:00.99900 30313A30303A30302E3939393030 01:00:00.99990 01:00:00.99990 30313A30303A30302E3939393930 01:00:00.99999 01:00:00.99999 30313A30303A30302E3939393939 01:00:00.99999 01:00:00.99999 30313A30303A30302E3939393939 SELECT a4, t4, HEX(WEIGHT_STRING(t4)) FROM t1 ORDER BY t4, a6; a4 t4 HEX(WEIGHT_STRING(t4)) -838:59:59.0000 -838:59:59.0000 2D3833383A35393A35392E30303030 -838:59:58.9999 -838:59:58.9999 2D3833383A35393A35382E39393939 -838:59:58.9999 -838:59:58.9999 2D3833383A35393A35382E39393939 -838:59:58.9999 -838:59:58.9999 2D3833383A35393A35382E39393939 -838:59:58.9990 -838:59:58.9990 2D3833383A35393A35382E39393930 -838:59:58.9900 -838:59:58.9900 2D3833383A35393A35382E39393030 -838:59:58.9000 -838:59:58.9000 2D3833383A35393A35382E39303030 -838:59:58.1000 -838:59:58.1000 2D3833383A35393A35382E31303030 -838:59:58.0999 -838:59:58.0999 2D3833383A35393A35382E30393939 -838:59:58.0099 -838:59:58.0099 2D3833383A35393A35382E30303939 -838:59:58.0009 -838:59:58.0009 2D3833383A35393A35382E30303039 -838:59:58.0000 -838:59:58.0000 2D3833383A35393A35382E30303030 -838:59:58.0000 -838:59:58.0000 2D3833383A35393A35382E30303030 -838:59:58.0000 -838:59:58.0000 2D3833383A35393A35382E30303030 -838:59:58.0000 -838:59:58.0000 2D3833383A35393A35382E30303030 -838:59:58.0000 -838:59:58.0000 2D3833383A35393A35382E30303030 -01:00:00.9999 -01:00:00.9999 2D30313A30303A30302E39393939 -01:00:00.9999 -01:00:00.9999 2D30313A30303A30302E39393939 -01:00:00.9999 -01:00:00.9999 2D30313A30303A30302E39393939 -01:00:00.9990 -01:00:00.9990 2D30313A30303A30302E39393930 -01:00:00.9900 -01:00:00.9900 2D30313A30303A30302E39393030 -01:00:00.9000 -01:00:00.9000 2D30313A30303A30302E39303030 -01:00:00.1000 -01:00:00.1000 2D30313A30303A30302E31303030 -01:00:00.0999 -01:00:00.0999 2D30313A30303A30302E30393939 -01:00:00.0099 -01:00:00.0099 2D30313A30303A30302E30303939 -01:00:00.0009 -01:00:00.0009 2D30313A30303A30302E30303039 -01:00:00.0000 -01:00:00.0000 2D30313A30303A30302E30303030 -01:00:00.0000 -01:00:00.0000 2D30313A30303A30302E30303030 -01:00:00.0000 -01:00:00.0000 2D30313A30303A30302E30303030 -01:00:00.0000 -01:00:00.0000 2D30313A30303A30302E30303030 -01:00:00.0000 -01:00:00.0000 2D30313A30303A30302E30303030 -00:01:00.9999 -00:01:00.9999 2D30303A30313A30302E39393939 -00:01:00.9000 -00:01:00.9000 2D30303A30313A30302E39303030 -00:01:00.1000 -00:01:00.1000 2D30303A30313A30302E31303030 -00:01:00.0999 -00:01:00.0999 2D30303A30313A30302E30393939 -00:01:00.0099 -00:01:00.0099 2D30303A30313A30302E30303939 -00:01:00.0009 -00:01:00.0009 2D30303A30313A30302E30303039 -00:01:00.0000 -00:01:00.0000 2D30303A30313A30302E30303030 -00:01:00.0000 -00:01:00.0000 2D30303A30313A30302E30303030 -00:01:00.0000 -00:01:00.0000 2D30303A30313A30302E30303030 -00:01:00.0000 -00:01:00.0000 2D30303A30313A30302E30303030 -00:01:00.0000 -00:01:00.0000 2D30303A30313A30302E30303030 -00:00:01.9999 -00:00:01.9999 2D30303A30303A30312E39393939 -00:00:01.9999 -00:00:01.9999 2D30303A30303A30312E39393939 -00:00:01.9999 -00:00:01.9999 2D30303A30303A30312E39393939 -00:00:01.9990 -00:00:01.9990 2D30303A30303A30312E39393930 -00:00:01.9900 -00:00:01.9900 2D30303A30303A30312E39393030 -00:00:01.9000 -00:00:01.9000 2D30303A30303A30312E39303030 -00:00:01.1000 -00:00:01.1000 2D30303A30303A30312E31303030 -00:00:01.0999 -00:00:01.0999 2D30303A30303A30312E30393939 -00:00:01.0900 -00:00:01.0900 2D30303A30303A30312E30393030 -00:00:01.0099 -00:00:01.0099 2D30303A30303A30312E30303939 -00:00:01.0009 -00:00:01.0009 2D30303A30303A30312E30303039 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:01.0000 -00:00:01.0000 2D30303A30303A30312E30303030 -00:00:00.9999 -00:00:00.9999 2D30303A30303A30302E39393939 -00:00:00.9999 -00:00:00.9999 2D30303A30303A30302E39393939 -00:00:00.9999 -00:00:00.9999 2D30303A30303A30302E39393939 -00:00:00.9990 -00:00:00.9990 2D30303A30303A30302E39393930 -00:00:00.9900 -00:00:00.9900 2D30303A30303A30302E39393030 -00:00:00.9000 -00:00:00.9000 2D30303A30303A30302E39303030 -00:00:00.1000 -00:00:00.1000 2D30303A30303A30302E31303030 -00:00:00.0999 -00:00:00.0999 2D30303A30303A30302E30393939 -00:00:00.0099 -00:00:00.0099 2D30303A30303A30302E30303939 -00:00:00.0009 -00:00:00.0009 2D30303A30303A30302E30303039 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 -00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0000 00:00:00.0000 30303A30303A30302E30303030 00:00:00.0009 00:00:00.0009 30303A30303A30302E30303039 00:00:00.0099 00:00:00.0099 30303A30303A30302E30303939 00:00:00.0999 00:00:00.0999 30303A30303A30302E30393939 00:00:00.1000 00:00:00.1000 30303A30303A30302E31303030 00:00:00.9000 00:00:00.9000 30303A30303A30302E39303030 00:00:00.9900 00:00:00.9900 30303A30303A30302E39393030 00:00:00.9990 00:00:00.9990 30303A30303A30302E39393930 00:00:00.9999 00:00:00.9999 30303A30303A30302E39393939 00:00:00.9999 00:00:00.9999 30303A30303A30302E39393939 00:00:00.9999 00:00:00.9999 30303A30303A30302E39393939 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0000 00:00:01.0000 30303A30303A30312E30303030 00:00:01.0009 00:00:01.0009 30303A30303A30312E30303039 00:00:01.0099 00:00:01.0099 30303A30303A30312E30303939 00:00:01.0900 00:00:01.0900 30303A30303A30312E30393030 00:00:01.0999 00:00:01.0999 30303A30303A30312E30393939 00:00:01.1000 00:00:01.1000 30303A30303A30312E31303030 00:00:01.9000 00:00:01.9000 30303A30303A30312E39303030 00:00:01.9900 00:00:01.9900 30303A30303A30312E39393030 00:00:01.9990 00:00:01.9990 30303A30303A30312E39393930 00:00:01.9999 00:00:01.9999 30303A30303A30312E39393939 00:00:01.9999 00:00:01.9999 30303A30303A30312E39393939 00:00:01.9999 00:00:01.9999 30303A30303A30312E39393939 00:01:00.0000 00:01:00.0000 30303A30313A30302E30303030 00:01:00.0000 00:01:00.0000 30303A30313A30302E30303030 00:01:00.0000 00:01:00.0000 30303A30313A30302E30303030 00:01:00.0000 00:01:00.0000 30303A30313A30302E30303030 00:01:00.0000 00:01:00.0000 30303A30313A30302E30303030 00:01:00.0009 00:01:00.0009 30303A30313A30302E30303039 00:01:00.0099 00:01:00.0099 30303A30313A30302E30303939 00:01:00.0999 00:01:00.0999 30303A30313A30302E30393939 00:01:00.1000 00:01:00.1000 30303A30313A30302E31303030 00:01:00.9000 00:01:00.9000 30303A30313A30302E39303030 00:01:00.9999 00:01:00.9999 30303A30313A30302E39393939 01:00:00.0000 01:00:00.0000 30313A30303A30302E30303030 01:00:00.0000 01:00:00.0000 30313A30303A30302E30303030 01:00:00.0000 01:00:00.0000 30313A30303A30302E30303030 01:00:00.0000 01:00:00.0000 30313A30303A30302E30303030 01:00:00.0000 01:00:00.0000 30313A30303A30302E30303030 01:00:00.0009 01:00:00.0009 30313A30303A30302E30303039 01:00:00.0099 01:00:00.0099 30313A30303A30302E30303939 01:00:00.0999 01:00:00.0999 30313A30303A30302E30393939 01:00:00.1000 01:00:00.1000 30313A30303A30302E31303030 01:00:00.9000 01:00:00.9000 30313A30303A30302E39303030 01:00:00.9900 01:00:00.9900 30313A30303A30302E39393030 01:00:00.9990 01:00:00.9990 30313A30303A30302E39393930 01:00:00.9999 01:00:00.9999 30313A30303A30302E39393939 01:00:00.9999 01:00:00.9999 30313A30303A30302E39393939 01:00:00.9999 01:00:00.9999 30313A30303A30302E39393939 838:59:58.0000 838:59:58.0000 3833383A35393A35382E30303030 838:59:58.0000 838:59:58.0000 3833383A35393A35382E30303030 838:59:58.0000 838:59:58.0000 3833383A35393A35382E30303030 838:59:58.0000 838:59:58.0000 3833383A35393A35382E30303030 838:59:58.0000 838:59:58.0000 3833383A35393A35382E30303030 838:59:58.0009 838:59:58.0009 3833383A35393A35382E30303039 838:59:58.0099 838:59:58.0099 3833383A35393A35382E30303939 838:59:58.0999 838:59:58.0999 3833383A35393A35382E30393939 838:59:58.1000 838:59:58.1000 3833383A35393A35382E31303030 838:59:58.9000 838:59:58.9000 3833383A35393A35382E39303030 838:59:58.9900 838:59:58.9900 3833383A35393A35382E39393030 838:59:58.9990 838:59:58.9990 3833383A35393A35382E39393930 838:59:58.9999 838:59:58.9999 3833383A35393A35382E39393939 838:59:58.9999 838:59:58.9999 3833383A35393A35382E39393939 838:59:58.9999 838:59:58.9999 3833383A35393A35382E39393939 838:59:59.0000 838:59:59.0000 3833383A35393A35392E30303030 SELECT a3, t3, HEX(WEIGHT_STRING(t3)) FROM t1 ORDER BY t3, a6; a3 t3 HEX(WEIGHT_STRING(t3)) -838:59:59.000 -838:59:59.000 2D3833383A35393A35392E303030 -838:59:58.999 -838:59:58.999 2D3833383A35393A35382E393939 -838:59:58.999 -838:59:58.999 2D3833383A35393A35382E393939 -838:59:58.999 -838:59:58.999 2D3833383A35393A35382E393939 -838:59:58.999 -838:59:58.999 2D3833383A35393A35382E393939 -838:59:58.990 -838:59:58.990 2D3833383A35393A35382E393930 -838:59:58.900 -838:59:58.900 2D3833383A35393A35382E393030 -838:59:58.100 -838:59:58.100 2D3833383A35393A35382E313030 -838:59:58.099 -838:59:58.099 2D3833383A35393A35382E303939 -838:59:58.009 -838:59:58.009 2D3833383A35393A35382E303039 -838:59:58.000 -838:59:58.000 2D3833383A35393A35382E303030 -838:59:58.000 -838:59:58.000 2D3833383A35393A35382E303030 -838:59:58.000 -838:59:58.000 2D3833383A35393A35382E303030 -838:59:58.000 -838:59:58.000 2D3833383A35393A35382E303030 -838:59:58.000 -838:59:58.000 2D3833383A35393A35382E303030 -838:59:58.000 -838:59:58.000 2D3833383A35393A35382E303030 -01:00:00.999 -01:00:00.999 2D30313A30303A30302E393939 -01:00:00.999 -01:00:00.999 2D30313A30303A30302E393939 -01:00:00.999 -01:00:00.999 2D30313A30303A30302E393939 -01:00:00.999 -01:00:00.999 2D30313A30303A30302E393939 -01:00:00.990 -01:00:00.990 2D30313A30303A30302E393930 -01:00:00.900 -01:00:00.900 2D30313A30303A30302E393030 -01:00:00.100 -01:00:00.100 2D30313A30303A30302E313030 -01:00:00.099 -01:00:00.099 2D30313A30303A30302E303939 -01:00:00.009 -01:00:00.009 2D30313A30303A30302E303039 -01:00:00.000 -01:00:00.000 2D30313A30303A30302E303030 -01:00:00.000 -01:00:00.000 2D30313A30303A30302E303030 -01:00:00.000 -01:00:00.000 2D30313A30303A30302E303030 -01:00:00.000 -01:00:00.000 2D30313A30303A30302E303030 -01:00:00.000 -01:00:00.000 2D30313A30303A30302E303030 -01:00:00.000 -01:00:00.000 2D30313A30303A30302E303030 -00:01:00.999 -00:01:00.999 2D30303A30313A30302E393939 -00:01:00.900 -00:01:00.900 2D30303A30313A30302E393030 -00:01:00.100 -00:01:00.100 2D30303A30313A30302E313030 -00:01:00.099 -00:01:00.099 2D30303A30313A30302E303939 -00:01:00.009 -00:01:00.009 2D30303A30313A30302E303039 -00:01:00.000 -00:01:00.000 2D30303A30313A30302E303030 -00:01:00.000 -00:01:00.000 2D30303A30313A30302E303030 -00:01:00.000 -00:01:00.000 2D30303A30313A30302E303030 -00:01:00.000 -00:01:00.000 2D30303A30313A30302E303030 -00:01:00.000 -00:01:00.000 2D30303A30313A30302E303030 -00:01:00.000 -00:01:00.000 2D30303A30313A30302E303030 -00:00:01.999 -00:00:01.999 2D30303A30303A30312E393939 -00:00:01.999 -00:00:01.999 2D30303A30303A30312E393939 -00:00:01.999 -00:00:01.999 2D30303A30303A30312E393939 -00:00:01.999 -00:00:01.999 2D30303A30303A30312E393939 -00:00:01.990 -00:00:01.990 2D30303A30303A30312E393930 -00:00:01.900 -00:00:01.900 2D30303A30303A30312E393030 -00:00:01.100 -00:00:01.100 2D30303A30303A30312E313030 -00:00:01.099 -00:00:01.099 2D30303A30303A30312E303939 -00:00:01.090 -00:00:01.090 2D30303A30303A30312E303930 -00:00:01.009 -00:00:01.009 2D30303A30303A30312E303039 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:01.000 -00:00:01.000 2D30303A30303A30312E303030 -00:00:00.999 -00:00:00.999 2D30303A30303A30302E393939 -00:00:00.999 -00:00:00.999 2D30303A30303A30302E393939 -00:00:00.999 -00:00:00.999 2D30303A30303A30302E393939 -00:00:00.999 -00:00:00.999 2D30303A30303A30302E393939 -00:00:00.990 -00:00:00.990 2D30303A30303A30302E393930 -00:00:00.900 -00:00:00.900 2D30303A30303A30302E393030 -00:00:00.100 -00:00:00.100 2D30303A30303A30302E313030 -00:00:00.099 -00:00:00.099 2D30303A30303A30302E303939 -00:00:00.009 -00:00:00.009 2D30303A30303A30302E303039 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 -00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.000 00:00:00.000 30303A30303A30302E303030 00:00:00.009 00:00:00.009 30303A30303A30302E303039 00:00:00.099 00:00:00.099 30303A30303A30302E303939 00:00:00.100 00:00:00.100 30303A30303A30302E313030 00:00:00.900 00:00:00.900 30303A30303A30302E393030 00:00:00.990 00:00:00.990 30303A30303A30302E393930 00:00:00.999 00:00:00.999 30303A30303A30302E393939 00:00:00.999 00:00:00.999 30303A30303A30302E393939 00:00:00.999 00:00:00.999 30303A30303A30302E393939 00:00:00.999 00:00:00.999 30303A30303A30302E393939 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.000 00:00:01.000 30303A30303A30312E303030 00:00:01.009 00:00:01.009 30303A30303A30312E303039 00:00:01.090 00:00:01.090 30303A30303A30312E303930 00:00:01.099 00:00:01.099 30303A30303A30312E303939 00:00:01.100 00:00:01.100 30303A30303A30312E313030 00:00:01.900 00:00:01.900 30303A30303A30312E393030 00:00:01.990 00:00:01.990 30303A30303A30312E393930 00:00:01.999 00:00:01.999 30303A30303A30312E393939 00:00:01.999 00:00:01.999 30303A30303A30312E393939 00:00:01.999 00:00:01.999 30303A30303A30312E393939 00:00:01.999 00:00:01.999 30303A30303A30312E393939 00:01:00.000 00:01:00.000 30303A30313A30302E303030 00:01:00.000 00:01:00.000 30303A30313A30302E303030 00:01:00.000 00:01:00.000 30303A30313A30302E303030 00:01:00.000 00:01:00.000 30303A30313A30302E303030 00:01:00.000 00:01:00.000 30303A30313A30302E303030 00:01:00.000 00:01:00.000 30303A30313A30302E303030 00:01:00.009 00:01:00.009 30303A30313A30302E303039 00:01:00.099 00:01:00.099 30303A30313A30302E303939 00:01:00.100 00:01:00.100 30303A30313A30302E313030 00:01:00.900 00:01:00.900 30303A30313A30302E393030 00:01:00.999 00:01:00.999 30303A30313A30302E393939 01:00:00.000 01:00:00.000 30313A30303A30302E303030 01:00:00.000 01:00:00.000 30313A30303A30302E303030 01:00:00.000 01:00:00.000 30313A30303A30302E303030 01:00:00.000 01:00:00.000 30313A30303A30302E303030 01:00:00.000 01:00:00.000 30313A30303A30302E303030 01:00:00.000 01:00:00.000 30313A30303A30302E303030 01:00:00.009 01:00:00.009 30313A30303A30302E303039 01:00:00.099 01:00:00.099 30313A30303A30302E303939 01:00:00.100 01:00:00.100 30313A30303A30302E313030 01:00:00.900 01:00:00.900 30313A30303A30302E393030 01:00:00.990 01:00:00.990 30313A30303A30302E393930 01:00:00.999 01:00:00.999 30313A30303A30302E393939 01:00:00.999 01:00:00.999 30313A30303A30302E393939 01:00:00.999 01:00:00.999 30313A30303A30302E393939 01:00:00.999 01:00:00.999 30313A30303A30302E393939 838:59:58.000 838:59:58.000 3833383A35393A35382E303030 838:59:58.000 838:59:58.000 3833383A35393A35382E303030 838:59:58.000 838:59:58.000 3833383A35393A35382E303030 838:59:58.000 838:59:58.000 3833383A35393A35382E303030 838:59:58.000 838:59:58.000 3833383A35393A35382E303030 838:59:58.000 838:59:58.000 3833383A35393A35382E303030 838:59:58.009 838:59:58.009 3833383A35393A35382E303039 838:59:58.099 838:59:58.099 3833383A35393A35382E303939 838:59:58.100 838:59:58.100 3833383A35393A35382E313030 838:59:58.900 838:59:58.900 3833383A35393A35382E393030 838:59:58.990 838:59:58.990 3833383A35393A35382E393930 838:59:58.999 838:59:58.999 3833383A35393A35382E393939 838:59:58.999 838:59:58.999 3833383A35393A35382E393939 838:59:58.999 838:59:58.999 3833383A35393A35382E393939 838:59:58.999 838:59:58.999 3833383A35393A35382E393939 838:59:59.000 838:59:59.000 3833383A35393A35392E303030 SELECT a2, t2, HEX(WEIGHT_STRING(t2)) FROM t1 ORDER BY t2, a6; a2 t2 HEX(WEIGHT_STRING(t2)) -838:59:59.00 -838:59:59.00 2D3833383A35393A35392E3030 -838:59:58.99 -838:59:58.99 2D3833383A35393A35382E3939 -838:59:58.99 -838:59:58.99 2D3833383A35393A35382E3939 -838:59:58.99 -838:59:58.99 2D3833383A35393A35382E3939 -838:59:58.99 -838:59:58.99 2D3833383A35393A35382E3939 -838:59:58.99 -838:59:58.99 2D3833383A35393A35382E3939 -838:59:58.90 -838:59:58.90 2D3833383A35393A35382E3930 -838:59:58.10 -838:59:58.10 2D3833383A35393A35382E3130 -838:59:58.09 -838:59:58.09 2D3833383A35393A35382E3039 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -838:59:58.00 -838:59:58.00 2D3833383A35393A35382E3030 -01:00:00.99 -01:00:00.99 2D30313A30303A30302E3939 -01:00:00.99 -01:00:00.99 2D30313A30303A30302E3939 -01:00:00.99 -01:00:00.99 2D30313A30303A30302E3939 -01:00:00.99 -01:00:00.99 2D30313A30303A30302E3939 -01:00:00.99 -01:00:00.99 2D30313A30303A30302E3939 -01:00:00.90 -01:00:00.90 2D30313A30303A30302E3930 -01:00:00.10 -01:00:00.10 2D30313A30303A30302E3130 -01:00:00.09 -01:00:00.09 2D30313A30303A30302E3039 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -01:00:00.00 -01:00:00.00 2D30313A30303A30302E3030 -00:01:00.99 -00:01:00.99 2D30303A30313A30302E3939 -00:01:00.90 -00:01:00.90 2D30303A30313A30302E3930 -00:01:00.10 -00:01:00.10 2D30303A30313A30302E3130 -00:01:00.09 -00:01:00.09 2D30303A30313A30302E3039 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:01:00.00 -00:01:00.00 2D30303A30313A30302E3030 -00:00:01.99 -00:00:01.99 2D30303A30303A30312E3939 -00:00:01.99 -00:00:01.99 2D30303A30303A30312E3939 -00:00:01.99 -00:00:01.99 2D30303A30303A30312E3939 -00:00:01.99 -00:00:01.99 2D30303A30303A30312E3939 -00:00:01.99 -00:00:01.99 2D30303A30303A30312E3939 -00:00:01.90 -00:00:01.90 2D30303A30303A30312E3930 -00:00:01.10 -00:00:01.10 2D30303A30303A30312E3130 -00:00:01.09 -00:00:01.09 2D30303A30303A30312E3039 -00:00:01.09 -00:00:01.09 2D30303A30303A30312E3039 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:01.00 -00:00:01.00 2D30303A30303A30312E3030 -00:00:00.99 -00:00:00.99 2D30303A30303A30302E3939 -00:00:00.99 -00:00:00.99 2D30303A30303A30302E3939 -00:00:00.99 -00:00:00.99 2D30303A30303A30302E3939 -00:00:00.99 -00:00:00.99 2D30303A30303A30302E3939 -00:00:00.99 -00:00:00.99 2D30303A30303A30302E3939 -00:00:00.90 -00:00:00.90 2D30303A30303A30302E3930 -00:00:00.10 -00:00:00.10 2D30303A30303A30302E3130 -00:00:00.09 -00:00:00.09 2D30303A30303A30302E3039 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 -00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.00 00:00:00.00 30303A30303A30302E3030 00:00:00.09 00:00:00.09 30303A30303A30302E3039 00:00:00.10 00:00:00.10 30303A30303A30302E3130 00:00:00.90 00:00:00.90 30303A30303A30302E3930 00:00:00.99 00:00:00.99 30303A30303A30302E3939 00:00:00.99 00:00:00.99 30303A30303A30302E3939 00:00:00.99 00:00:00.99 30303A30303A30302E3939 00:00:00.99 00:00:00.99 30303A30303A30302E3939 00:00:00.99 00:00:00.99 30303A30303A30302E3939 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.00 00:00:01.00 30303A30303A30312E3030 00:00:01.09 00:00:01.09 30303A30303A30312E3039 00:00:01.09 00:00:01.09 30303A30303A30312E3039 00:00:01.10 00:00:01.10 30303A30303A30312E3130 00:00:01.90 00:00:01.90 30303A30303A30312E3930 00:00:01.99 00:00:01.99 30303A30303A30312E3939 00:00:01.99 00:00:01.99 30303A30303A30312E3939 00:00:01.99 00:00:01.99 30303A30303A30312E3939 00:00:01.99 00:00:01.99 30303A30303A30312E3939 00:00:01.99 00:00:01.99 30303A30303A30312E3939 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.00 00:01:00.00 30303A30313A30302E3030 00:01:00.09 00:01:00.09 30303A30313A30302E3039 00:01:00.10 00:01:00.10 30303A30313A30302E3130 00:01:00.90 00:01:00.90 30303A30313A30302E3930 00:01:00.99 00:01:00.99 30303A30313A30302E3939 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.00 01:00:00.00 30313A30303A30302E3030 01:00:00.09 01:00:00.09 30313A30303A30302E3039 01:00:00.10 01:00:00.10 30313A30303A30302E3130 01:00:00.90 01:00:00.90 30313A30303A30302E3930 01:00:00.99 01:00:00.99 30313A30303A30302E3939 01:00:00.99 01:00:00.99 30313A30303A30302E3939 01:00:00.99 01:00:00.99 30313A30303A30302E3939 01:00:00.99 01:00:00.99 30313A30303A30302E3939 01:00:00.99 01:00:00.99 30313A30303A30302E3939 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.00 838:59:58.00 3833383A35393A35382E3030 838:59:58.09 838:59:58.09 3833383A35393A35382E3039 838:59:58.10 838:59:58.10 3833383A35393A35382E3130 838:59:58.90 838:59:58.90 3833383A35393A35382E3930 838:59:58.99 838:59:58.99 3833383A35393A35382E3939 838:59:58.99 838:59:58.99 3833383A35393A35382E3939 838:59:58.99 838:59:58.99 3833383A35393A35382E3939 838:59:58.99 838:59:58.99 3833383A35393A35382E3939 838:59:58.99 838:59:58.99 3833383A35393A35382E3939 838:59:59.00 838:59:59.00 3833383A35393A35392E3030 SELECT a1, t1, HEX(WEIGHT_STRING(t1)) FROM t1 ORDER BY t1, a6; a1 t1 HEX(WEIGHT_STRING(t1)) -838:59:59.0 -838:59:59.0 2D3833383A35393A35392E30 -838:59:58.9 -838:59:58.9 2D3833383A35393A35382E39 -838:59:58.9 -838:59:58.9 2D3833383A35393A35382E39 -838:59:58.9 -838:59:58.9 2D3833383A35393A35382E39 -838:59:58.9 -838:59:58.9 2D3833383A35393A35382E39 -838:59:58.9 -838:59:58.9 2D3833383A35393A35382E39 -838:59:58.9 -838:59:58.9 2D3833383A35393A35382E39 -838:59:58.1 -838:59:58.1 2D3833383A35393A35382E31 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -838:59:58.0 -838:59:58.0 2D3833383A35393A35382E30 -01:00:00.9 -01:00:00.9 2D30313A30303A30302E39 -01:00:00.9 -01:00:00.9 2D30313A30303A30302E39 -01:00:00.9 -01:00:00.9 2D30313A30303A30302E39 -01:00:00.9 -01:00:00.9 2D30313A30303A30302E39 -01:00:00.9 -01:00:00.9 2D30313A30303A30302E39 -01:00:00.9 -01:00:00.9 2D30313A30303A30302E39 -01:00:00.1 -01:00:00.1 2D30313A30303A30302E31 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -01:00:00.0 -01:00:00.0 2D30313A30303A30302E30 -00:01:00.9 -00:01:00.9 2D30303A30313A30302E39 -00:01:00.9 -00:01:00.9 2D30303A30313A30302E39 -00:01:00.1 -00:01:00.1 2D30303A30313A30302E31 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:01:00.0 -00:01:00.0 2D30303A30313A30302E30 -00:00:01.9 -00:00:01.9 2D30303A30303A30312E39 -00:00:01.9 -00:00:01.9 2D30303A30303A30312E39 -00:00:01.9 -00:00:01.9 2D30303A30303A30312E39 -00:00:01.9 -00:00:01.9 2D30303A30303A30312E39 -00:00:01.9 -00:00:01.9 2D30303A30303A30312E39 -00:00:01.9 -00:00:01.9 2D30303A30303A30312E39 -00:00:01.1 -00:00:01.1 2D30303A30303A30312E31 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:01.0 -00:00:01.0 2D30303A30303A30312E30 -00:00:00.9 -00:00:00.9 2D30303A30303A30302E39 -00:00:00.9 -00:00:00.9 2D30303A30303A30302E39 -00:00:00.9 -00:00:00.9 2D30303A30303A30302E39 -00:00:00.9 -00:00:00.9 2D30303A30303A30302E39 -00:00:00.9 -00:00:00.9 2D30303A30303A30302E39 -00:00:00.9 -00:00:00.9 2D30303A30303A30302E39 -00:00:00.1 -00:00:00.1 2D30303A30303A30302E31 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 -00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.0 00:00:00.0 30303A30303A30302E30 00:00:00.1 00:00:00.1 30303A30303A30302E31 00:00:00.9 00:00:00.9 30303A30303A30302E39 00:00:00.9 00:00:00.9 30303A30303A30302E39 00:00:00.9 00:00:00.9 30303A30303A30302E39 00:00:00.9 00:00:00.9 30303A30303A30302E39 00:00:00.9 00:00:00.9 30303A30303A30302E39 00:00:00.9 00:00:00.9 30303A30303A30302E39 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.0 00:00:01.0 30303A30303A30312E30 00:00:01.1 00:00:01.1 30303A30303A30312E31 00:00:01.9 00:00:01.9 30303A30303A30312E39 00:00:01.9 00:00:01.9 30303A30303A30312E39 00:00:01.9 00:00:01.9 30303A30303A30312E39 00:00:01.9 00:00:01.9 30303A30303A30312E39 00:00:01.9 00:00:01.9 30303A30303A30312E39 00:00:01.9 00:00:01.9 30303A30303A30312E39 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.0 00:01:00.0 30303A30313A30302E30 00:01:00.1 00:01:00.1 30303A30313A30302E31 00:01:00.9 00:01:00.9 30303A30313A30302E39 00:01:00.9 00:01:00.9 30303A30313A30302E39 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.0 01:00:00.0 30313A30303A30302E30 01:00:00.1 01:00:00.1 30313A30303A30302E31 01:00:00.9 01:00:00.9 30313A30303A30302E39 01:00:00.9 01:00:00.9 30313A30303A30302E39 01:00:00.9 01:00:00.9 30313A30303A30302E39 01:00:00.9 01:00:00.9 30313A30303A30302E39 01:00:00.9 01:00:00.9 30313A30303A30302E39 01:00:00.9 01:00:00.9 30313A30303A30302E39 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.0 838:59:58.0 3833383A35393A35382E30 838:59:58.1 838:59:58.1 3833383A35393A35382E31 838:59:58.9 838:59:58.9 3833383A35393A35382E39 838:59:58.9 838:59:58.9 3833383A35393A35382E39 838:59:58.9 838:59:58.9 3833383A35393A35382E39 838:59:58.9 838:59:58.9 3833383A35393A35382E39 838:59:58.9 838:59:58.9 3833383A35393A35382E39 838:59:58.9 838:59:58.9 3833383A35393A35382E39 838:59:59.0 838:59:59.0 3833383A35393A35392E30 CREATE VIEW v1 AS SELECT a6, t0, t1, t2, t3, t4, t5, t6, HEX(WEIGHT_STRING(t0)) as wst0, HEX(WEIGHT_STRING(t1)) as wst1, HEX(WEIGHT_STRING(t2)) as wst2, HEX(WEIGHT_STRING(t3)) as wst3, HEX(WEIGHT_STRING(t4)) as wst4, HEX(WEIGHT_STRING(t5)) as wst5, HEX(WEIGHT_STRING(t6)) as wst6 FROM t1; SELECT * FROM v1 WHERE a6 LIKE '%.999999' ORDER BY a6, t6;; a6 -00:00:00.999999 t0 00:00:00 t1 -00:00:00.9 t2 -00:00:00.99 t3 -00:00:00.999 t4 -00:00:00.9999 t5 -00:00:00.99999 t6 -00:00:00.999999 wst0 30303A30303A3030 wst1 2D30303A30303A30302E39 wst2 2D30303A30303A30302E3939 wst3 2D30303A30303A30302E393939 wst4 2D30303A30303A30302E39393939 wst5 2D30303A30303A30302E3939393939 wst6 2D30303A30303A30302E393939393939 a6 -00:00:01.999999 t0 -00:00:01 t1 -00:00:01.9 t2 -00:00:01.99 t3 -00:00:01.999 t4 -00:00:01.9999 t5 -00:00:01.99999 t6 -00:00:01.999999 wst0 2D30303A30303A3031 wst1 2D30303A30303A30312E39 wst2 2D30303A30303A30312E3939 wst3 2D30303A30303A30312E393939 wst4 2D30303A30303A30312E39393939 wst5 2D30303A30303A30312E3939393939 wst6 2D30303A30303A30312E393939393939 a6 -00:01:00.999999 t0 -00:01:00 t1 -00:01:00.9 t2 -00:01:00.99 t3 -00:01:00.999 t4 -00:01:00.9999 t5 -00:01:00.99999 t6 -00:01:00.999999 wst0 2D30303A30313A3030 wst1 2D30303A30313A30302E39 wst2 2D30303A30313A30302E3939 wst3 2D30303A30313A30302E393939 wst4 2D30303A30313A30302E39393939 wst5 2D30303A30313A30302E3939393939 wst6 2D30303A30313A30302E393939393939 a6 -01:00:00.999999 t0 -01:00:00 t1 -01:00:00.9 t2 -01:00:00.99 t3 -01:00:00.999 t4 -01:00:00.9999 t5 -01:00:00.99999 t6 -01:00:00.999999 wst0 2D30313A30303A3030 wst1 2D30313A30303A30302E39 wst2 2D30313A30303A30302E3939 wst3 2D30313A30303A30302E393939 wst4 2D30313A30303A30302E39393939 wst5 2D30313A30303A30302E3939393939 wst6 2D30313A30303A30302E393939393939 a6 -838:59:58.999999 t0 -838:59:58 t1 -838:59:58.9 t2 -838:59:58.99 t3 -838:59:58.999 t4 -838:59:58.9999 t5 -838:59:58.99999 t6 -838:59:58.999999 wst0 2D3833383A35393A3538 wst1 2D3833383A35393A35382E39 wst2 2D3833383A35393A35382E3939 wst3 2D3833383A35393A35382E393939 wst4 2D3833383A35393A35382E39393939 wst5 2D3833383A35393A35382E3939393939 wst6 2D3833383A35393A35382E393939393939 a6 00:00:00.999999 t0 00:00:00 t1 00:00:00.9 t2 00:00:00.99 t3 00:00:00.999 t4 00:00:00.9999 t5 00:00:00.99999 t6 00:00:00.999999 wst0 30303A30303A3030 wst1 30303A30303A30302E39 wst2 30303A30303A30302E3939 wst3 30303A30303A30302E393939 wst4 30303A30303A30302E39393939 wst5 30303A30303A30302E3939393939 wst6 30303A30303A30302E393939393939 a6 00:00:01.999999 t0 00:00:01 t1 00:00:01.9 t2 00:00:01.99 t3 00:00:01.999 t4 00:00:01.9999 t5 00:00:01.99999 t6 00:00:01.999999 wst0 30303A30303A3031 wst1 30303A30303A30312E39 wst2 30303A30303A30312E3939 wst3 30303A30303A30312E393939 wst4 30303A30303A30312E39393939 wst5 30303A30303A30312E3939393939 wst6 30303A30303A30312E393939393939 a6 00:01:00.999999 t0 00:01:00 t1 00:01:00.9 t2 00:01:00.99 t3 00:01:00.999 t4 00:01:00.9999 t5 00:01:00.99999 t6 00:01:00.999999 wst0 30303A30313A3030 wst1 30303A30313A30302E39 wst2 30303A30313A30302E3939 wst3 30303A30313A30302E393939 wst4 30303A30313A30302E39393939 wst5 30303A30313A30302E3939393939 wst6 30303A30313A30302E393939393939 a6 01:00:00.999999 t0 01:00:00 t1 01:00:00.9 t2 01:00:00.99 t3 01:00:00.999 t4 01:00:00.9999 t5 01:00:00.99999 t6 01:00:00.999999 wst0 30313A30303A3030 wst1 30313A30303A30302E39 wst2 30313A30303A30302E3939 wst3 30313A30303A30302E393939 wst4 30313A30303A30302E39393939 wst5 30313A30303A30302E3939393939 wst6 30313A30303A30302E393939393939 a6 838:59:58.999999 t0 838:59:58 t1 838:59:58.9 t2 838:59:58.99 t3 838:59:58.999 t4 838:59:58.9999 t5 838:59:58.99999 t6 838:59:58.999999 wst0 3833383A35393A3538 wst1 3833383A35393A35382E39 wst2 3833383A35393A35382E3939 wst3 3833383A35393A35382E393939 wst4 3833383A35393A35382E39393939 wst5 3833383A35393A35382E3939393939 wst6 3833383A35393A35382E393939393939 SELECT * FROM v1 WHERE a6 LIKE '%.000000' ORDER BY a6, t6;; a6 -00:00:00.000000 t0 00:00:00 t1 00:00:00.0 t2 00:00:00.00 t3 00:00:00.000 t4 00:00:00.0000 t5 00:00:00.00000 t6 00:00:00.000000 wst0 30303A30303A3030 wst1 30303A30303A30302E30 wst2 30303A30303A30302E3030 wst3 30303A30303A30302E303030 wst4 30303A30303A30302E30303030 wst5 30303A30303A30302E3030303030 wst6 30303A30303A30302E303030303030 a6 -00:00:01.000000 t0 -00:00:01 t1 -00:00:01.0 t2 -00:00:01.00 t3 -00:00:01.000 t4 -00:00:01.0000 t5 -00:00:01.00000 t6 -00:00:01.000000 wst0 2D30303A30303A3031 wst1 2D30303A30303A30312E30 wst2 2D30303A30303A30312E3030 wst3 2D30303A30303A30312E303030 wst4 2D30303A30303A30312E30303030 wst5 2D30303A30303A30312E3030303030 wst6 2D30303A30303A30312E303030303030 a6 -838:59:59.000000 t0 -838:59:59 t1 -838:59:59.0 t2 -838:59:59.00 t3 -838:59:59.000 t4 -838:59:59.0000 t5 -838:59:59.00000 t6 -838:59:59.000000 wst0 2D3833383A35393A3539 wst1 2D3833383A35393A35392E30 wst2 2D3833383A35393A35392E3030 wst3 2D3833383A35393A35392E303030 wst4 2D3833383A35393A35392E30303030 wst5 2D3833383A35393A35392E3030303030 wst6 2D3833383A35393A35392E303030303030 a6 00:00:00.000000 t0 00:00:00 t1 00:00:00.0 t2 00:00:00.00 t3 00:00:00.000 t4 00:00:00.0000 t5 00:00:00.00000 t6 00:00:00.000000 wst0 30303A30303A3030 wst1 30303A30303A30302E30 wst2 30303A30303A30302E3030 wst3 30303A30303A30302E303030 wst4 30303A30303A30302E30303030 wst5 30303A30303A30302E3030303030 wst6 30303A30303A30302E303030303030 a6 00:00:01.000000 t0 00:00:01 t1 00:00:01.0 t2 00:00:01.00 t3 00:00:01.000 t4 00:00:01.0000 t5 00:00:01.00000 t6 00:00:01.000000 wst0 30303A30303A3031 wst1 30303A30303A30312E30 wst2 30303A30303A30312E3030 wst3 30303A30303A30312E303030 wst4 30303A30303A30312E30303030 wst5 30303A30303A30312E3030303030 wst6 30303A30303A30312E303030303030 a6 838:59:59.000000 t0 838:59:59 t1 838:59:59.0 t2 838:59:59.00 t3 838:59:59.000 t4 838:59:59.0000 t5 838:59:59.00000 t6 838:59:59.000000 wst0 3833383A35393A3539 wst1 3833383A35393A35392E30 wst2 3833383A35393A35392E3030 wst3 3833383A35393A35392E303030 wst4 3833383A35393A35392E30303030 wst5 3833383A35393A35392E3030303030 wst6 3833383A35393A35392E303030303030 SELECT * FROM v1 WHERE a6 LIKE '%.100000' ORDER BY a6, t6;; a6 -00:00:00.100000 t0 00:00:00 t1 -00:00:00.1 t2 -00:00:00.10 t3 -00:00:00.100 t4 -00:00:00.1000 t5 -00:00:00.10000 t6 -00:00:00.100000 wst0 30303A30303A3030 wst1 2D30303A30303A30302E31 wst2 2D30303A30303A30302E3130 wst3 2D30303A30303A30302E313030 wst4 2D30303A30303A30302E31303030 wst5 2D30303A30303A30302E3130303030 wst6 2D30303A30303A30302E313030303030 a6 -00:00:01.100000 t0 -00:00:01 t1 -00:00:01.1 t2 -00:00:01.10 t3 -00:00:01.100 t4 -00:00:01.1000 t5 -00:00:01.10000 t6 -00:00:01.100000 wst0 2D30303A30303A3031 wst1 2D30303A30303A30312E31 wst2 2D30303A30303A30312E3130 wst3 2D30303A30303A30312E313030 wst4 2D30303A30303A30312E31303030 wst5 2D30303A30303A30312E3130303030 wst6 2D30303A30303A30312E313030303030 a6 -00:01:00.100000 t0 -00:01:00 t1 -00:01:00.1 t2 -00:01:00.10 t3 -00:01:00.100 t4 -00:01:00.1000 t5 -00:01:00.10000 t6 -00:01:00.100000 wst0 2D30303A30313A3030 wst1 2D30303A30313A30302E31 wst2 2D30303A30313A30302E3130 wst3 2D30303A30313A30302E313030 wst4 2D30303A30313A30302E31303030 wst5 2D30303A30313A30302E3130303030 wst6 2D30303A30313A30302E313030303030 a6 -01:00:00.100000 t0 -01:00:00 t1 -01:00:00.1 t2 -01:00:00.10 t3 -01:00:00.100 t4 -01:00:00.1000 t5 -01:00:00.10000 t6 -01:00:00.100000 wst0 2D30313A30303A3030 wst1 2D30313A30303A30302E31 wst2 2D30313A30303A30302E3130 wst3 2D30313A30303A30302E313030 wst4 2D30313A30303A30302E31303030 wst5 2D30313A30303A30302E3130303030 wst6 2D30313A30303A30302E313030303030 a6 -838:59:58.100000 t0 -838:59:58 t1 -838:59:58.1 t2 -838:59:58.10 t3 -838:59:58.100 t4 -838:59:58.1000 t5 -838:59:58.10000 t6 -838:59:58.100000 wst0 2D3833383A35393A3538 wst1 2D3833383A35393A35382E31 wst2 2D3833383A35393A35382E3130 wst3 2D3833383A35393A35382E313030 wst4 2D3833383A35393A35382E31303030 wst5 2D3833383A35393A35382E3130303030 wst6 2D3833383A35393A35382E313030303030 a6 00:00:00.100000 t0 00:00:00 t1 00:00:00.1 t2 00:00:00.10 t3 00:00:00.100 t4 00:00:00.1000 t5 00:00:00.10000 t6 00:00:00.100000 wst0 30303A30303A3030 wst1 30303A30303A30302E31 wst2 30303A30303A30302E3130 wst3 30303A30303A30302E313030 wst4 30303A30303A30302E31303030 wst5 30303A30303A30302E3130303030 wst6 30303A30303A30302E313030303030 a6 00:00:01.100000 t0 00:00:01 t1 00:00:01.1 t2 00:00:01.10 t3 00:00:01.100 t4 00:00:01.1000 t5 00:00:01.10000 t6 00:00:01.100000 wst0 30303A30303A3031 wst1 30303A30303A30312E31 wst2 30303A30303A30312E3130 wst3 30303A30303A30312E313030 wst4 30303A30303A30312E31303030 wst5 30303A30303A30312E3130303030 wst6 30303A30303A30312E313030303030 a6 00:01:00.100000 t0 00:01:00 t1 00:01:00.1 t2 00:01:00.10 t3 00:01:00.100 t4 00:01:00.1000 t5 00:01:00.10000 t6 00:01:00.100000 wst0 30303A30313A3030 wst1 30303A30313A30302E31 wst2 30303A30313A30302E3130 wst3 30303A30313A30302E313030 wst4 30303A30313A30302E31303030 wst5 30303A30313A30302E3130303030 wst6 30303A30313A30302E313030303030 a6 01:00:00.100000 t0 01:00:00 t1 01:00:00.1 t2 01:00:00.10 t3 01:00:00.100 t4 01:00:00.1000 t5 01:00:00.10000 t6 01:00:00.100000 wst0 30313A30303A3030 wst1 30313A30303A30302E31 wst2 30313A30303A30302E3130 wst3 30313A30303A30302E313030 wst4 30313A30303A30302E31303030 wst5 30313A30303A30302E3130303030 wst6 30313A30303A30302E313030303030 a6 838:59:58.100000 t0 838:59:58 t1 838:59:58.1 t2 838:59:58.10 t3 838:59:58.100 t4 838:59:58.1000 t5 838:59:58.10000 t6 838:59:58.100000 wst0 3833383A35393A3538 wst1 3833383A35393A35382E31 wst2 3833383A35393A35382E3130 wst3 3833383A35393A35382E313030 wst4 3833383A35393A35382E31303030 wst5 3833383A35393A35382E3130303030 wst6 3833383A35393A35382E313030303030 DROP VIEW v1; DROP TABLE t1; # # Testing that TIME(0) is a synonym to non-fractional TIME # CREATE TABLE t1 (a TIME(0) NOT NULL); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time NOT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing bad FSPs # CREATE TABLE t1 (a TIME(-1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1))' at line 1 CREATE TABLE t1 (a TIME(7)); ERROR 42000: Too big precision 7 specified for 'a'. Maximum is 6. CREATE TABLE t1 (a TIME(31)); ERROR 42000: Too big precision 31 specified for 'a'. Maximum is 6. # # Testing bad FSPs with TIME functions # SELECT CURTIME(-1); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1)' at line 1 SELECT CURTIME(7); ERROR 42000: Too big precision 7 specified for 'curtime'. Maximum is 6. SELECT CURTIME(31); ERROR 42000: Too big precision 31 specified for 'curtime'. Maximum is 6. # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # CREATE TABLE t1 (a TIME(6) NOT NULL); INSERT INTO t1 VALUES ('-838:59:59.000000'); INSERT INTO t1 VALUES ('-01:00:00.999999'); INSERT INTO t1 VALUES ('-01:00:00.000001'); INSERT INTO t1 VALUES ('-01:00:00.000000'); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('23:59:59.999999'); INSERT INTO t1 VALUES ('01:02:03'); INSERT INTO t1 VALUES ('01:02:03.4'); INSERT INTO t1 VALUES ('01:02:03.45'); INSERT INTO t1 VALUES ('01:02:03.456'); INSERT INTO t1 VALUES ('01:02:03.4567'); INSERT INTO t1 VALUES ('01:02:03.45678'); INSERT INTO t1 VALUES ('01:02:03.4567891'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.000000'); SELECT * FROM t1; a -838:59:59.000000 -01:00:00.999999 -01:00:00.000001 -01:00:00.000000 -00:00:00.000001 00:00:00.000000 23:59:59.999999 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 838:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 838:59:59.000000 23:59:59.999999 01:02:03.456789 01:02:03.456780 01:02:03.456700 01:02:03.456000 01:02:03.450000 01:02:03.400000 01:02:03.000000 00:00:00.000000 -00:00:00.000001 -01:00:00.000000 -01:00:00.000001 -01:00:00.999999 -838:59:59.000000 SELECT * FROM t1 WHERE a='01:02:03.45'; a 01:02:03.450000 SELECT * FROM t1 WHERE a='01:02:03.4567'; a 01:02:03.456700 SELECT * FROM t1 WHERE a='01:02:03.45670'; a 01:02:03.456700 SELECT * FROM t1 WHERE a='01:02:03.456700'; a 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '01:02:00' AND '01:03:00'; a 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIME'01:02:03.456' AND TIME'01:02:03.45678'; a 01:02:03.456000 01:02:03.456700 01:02:03.456780 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 ORDER BY a; a -838:59:59.000000 -01:00:00.999999 -01:00:00.000001 -01:00:00.000000 -00:00:00.000001 00:00:00.000000 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 23:59:59.999999 838:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 838:59:59.000000 23:59:59.999999 01:02:03.456789 01:02:03.456780 01:02:03.456700 01:02:03.456000 01:02:03.450000 01:02:03.400000 01:02:03.000000 00:00:00.000000 -00:00:00.000001 -01:00:00.000000 -01:00:00.000001 -01:00:00.999999 -838:59:59.000000 EXPLAIN SELECT * FROM t1 WHERE a='01:02:03.456700'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 6 const 1 Using index SELECT * FROM t1 WHERE a='01:02:03.456700'; a 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '01:02:00' AND '01:03:00'; a 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIME'01:02:03.456' AND TIME'01:02:03.45678'; a 01:02:03.456000 01:02:03.456700 01:02:03.456780 DROP TABLE t1; # # Testing TIME with days # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00'); INSERT INTO t1 VALUES ('-24:00:00'), ('24:00:00'); INSERT INTO t1 VALUES ('-1 00:00:00'), ('1 00:00:00'); INSERT INTO t1 VALUES ('-10 00:00:00'), ('10 00:00:00'); SELECT * FROM t1 ORDER BY a; a -240:00:00.000000 -24:00:00.000000 -24:00:00.000000 00:00:00.000000 24:00:00.000000 24:00:00.000000 240:00:00.000000 DROP TABLE t1; # # Testing rare formats # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (1122), ('1:2:3'), ('112233'),('-00:00:00'),('-00:00:00.000000'); SELECT * FROM t1 ORDER BY a; a 00:00:00.000000 00:00:00.000000 00:11:22.000000 01:02:03.000000 11:22:33.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (106060); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (106060.0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (106060e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('106060'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 DROP TABLE t1; # # Testing bad values with TRADITIONAL mode # SET sql_mode=traditional; CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.111111 xxx'); ERROR 22007: Incorrect time value: '00:00:00.111111 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (106060); ERROR 22007: Incorrect time value: '106060' for column 'a' at row 1 INSERT INTO t1 VALUES (106060.0); ERROR 22007: Incorrect time value: '106060.0' for column 'a' at row 1 INSERT INTO t1 VALUES (106060e0); ERROR 22007: Incorrect time value: '106060' for column 'a' at row 1 INSERT INTO t1 VALUES ('106060'); ERROR 22007: Incorrect time value: '106060' for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000009'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000009'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); ERROR 22007: Incorrect time value: '-4294967296' for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); ERROR 22007: Incorrect time value: '18446744069414584320' for column 'a' at row 1 SELECT * FROM t1; a 838:59:59.000000 -838:59:59.000000 DROP TABLE t1; SET sql_mode=default; # # Testing rounding # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (105959.1234567); INSERT INTO t1 VALUES ('00:00:00.1111110'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('00:00:00.1111111'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('00:00:00.1111114'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('00:00:00.1111115'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('00:00:00.1111119'); Warnings: Note 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 10:59:59.123456 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111111 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110); INSERT INTO t1 VALUES (0.1111111); INSERT INTO t1 VALUES (0.1111114); INSERT INTO t1 VALUES (0.1111115); INSERT INTO t1 VALUES (0.1111119); SELECT * FROM t1; a 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111111 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110e0); INSERT INTO t1 VALUES (0.1111111e0); INSERT INTO t1 VALUES (0.1111114e0); INSERT INTO t1 VALUES (0.1111115e0); INSERT INTO t1 VALUES (0.1111119e0); SELECT * FROM t1; a 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111111 DROP TABLE t1; # # Testing huge values # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (1000000000.0 * 1000000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1000000000.0 * 1000000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a -838:59:59.999999 838:59:59.999999 838:59:59.999999 838:59:59.999999 -838:59:59.999999 -838:59:59.999999 838:59:59.999999 -838:59:59.999999 DROP TABLE t1; # # Testing truncation warnings # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.111111 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 00:00:00.111111 DROP TABLE t1; # # Testing IN # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-99:00:00.000000'); INSERT INTO t1 VALUES ('-99:00:00.000001'); INSERT INTO t1 VALUES ('-99:00:00.000002'); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('-00:00:00.000002'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000002'); INSERT INTO t1 VALUES ('10:00:00.000000'); INSERT INTO t1 VALUES ('10:00:00.000001'); INSERT INTO t1 VALUES ('10:00:00.000002'); INSERT INTO t1 VALUES ('99:00:00.000000'); INSERT INTO t1 VALUES ('99:00:00.000001'); INSERT INTO t1 VALUES ('99:00:00.000002'); SELECT * FROM t1 WHERE a IN ('00:00:00', '-99:00:00.000001', '99:00:00.000002'); a -99:00:00.000001 00:00:00.000000 99:00:00.000002 SELECT * FROM t1 WHERE a IN (0, -990000, 990000); a -99:00:00.000000 00:00:00.000000 99:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, -990000.000001, 990000.000001); a -99:00:00.000001 00:00:00.000001 99:00:00.000001 # # Testing Item_temporal_with_ref::print # EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN (990000,0); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 14 100.00 Using where Warnings: Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` in (990000,0)) # # Testing IN with index: field->store_packed # ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 WHERE a IN ('00:00:00', '-99:00:00.000001', '99:00:00.000002'); a -99:00:00.000001 00:00:00.000000 99:00:00.000002 SELECT * FROM t1 WHERE a IN (0, -990000, 990000); a -99:00:00.000000 00:00:00.000000 99:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, -990000.000001, 990000.000001); a -99:00:00.000001 00:00:00.000001 99:00:00.000001 DROP TABLE t1; # # Testing CREATE TABLE LIKE # CREATE TABLE t1 (a TIME(6)); CREATE TABLE t2 LIKE t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2, t1; # # Testing CREATE TABLE .. SELECT # CREATE TABLE t1 (a TIME(6)); CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2, t1; # # Testing JOIN between TIME(6) and TIME(6) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:01:03.1'); INSERT INTO t1 VALUES ('00:01:03.12'); INSERT INTO t1 VALUES ('00:01:03.123'); INSERT INTO t1 VALUES ('00:01:03.1234'); INSERT INTO t1 VALUES ('00:01:03.12345'); INSERT INTO t1 VALUES ('00:01:03.123456'); CREATE TABLE t2 (a TIME(6)); INSERT INTO t2 SELECT * FROM t1; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN between TIME and TIME(6) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-836:59:59.000000'); INSERT INTO t1 VALUES ('10:11:12.000000'); INSERT INTO t1 VALUES ('10:11:12.000001'); INSERT INTO t1 VALUES ('10:11:12.000002'); INSERT INTO t1 VALUES ('10:11:13.000000'); INSERT INTO t1 VALUES ('10:11:13.000001'); INSERT INTO t1 VALUES ('10:11:13.000002'); INSERT INTO t1 VALUES ('835:59:59.999999'); INSERT INTO t1 VALUES ('836:59:59.000000'); CREATE TABLE t2 (a TIME); INSERT INTO t2 VALUES ('10:11:12'); INSERT INTO t2 VALUES ('10:11:13'); INSERT INTO t2 VALUES ('-836:59:59'); INSERT INTO t2 VALUES ('836:59:59'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a -836:59:59.000000 -836:59:59 10:11:12.000000 10:11:12 10:11:13.000000 10:11:13 836:59:59.000000 836:59:59 ALTER TABLE t1 ADD KEY(a); ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a -836:59:59.000000 -836:59:59 10:11:12.000000 10:11:12 10:11:13.000000 10:11:13 836:59:59.000000 836:59:59 DROP TABLE t2, t1; # # Testing unique index # CREATE TABLE t1 (a TIME(6), UNIQUE(a)); INSERT INTO t1 VALUES ('00:01:02'); INSERT INTO t1 VALUES ('00:01:02.1'); INSERT INTO t1 VALUES ('00:01:02.12'); INSERT INTO t1 VALUES ('00:01:02.123'); INSERT INTO t1 VALUES ('00:01:02.1234'); INSERT INTO t1 VALUES ('00:01:02.12345'); INSERT INTO t1 VALUES ('00:01:02.12345'); ERROR 23000: Duplicate entry '00:01:02.123450' for key 'a' DROP TABLE t1; # # Testing GROUP BY # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:01:02'); INSERT INTO t1 VALUES ('00:01:02.0'); INSERT INTO t1 VALUES ('00:01:02.01'); INSERT INTO t1 VALUES ('00:01:02.010'); INSERT INTO t1 VALUES ('00:01:02.02'); INSERT INTO t1 VALUES ('00:01:02.020'); SELECT a, COUNT(*) FROM t1 GROUP BY a; a COUNT(*) 00:01:02.000000 2 00:01:02.010000 2 00:01:02.020000 2 DROP TABLE t1; # # Testing MIN() and MAX() # CREATE TABLE t1 (a INT, b TIME(6)); INSERT INTO t1 VALUES (1, '00:01:02.000001'); INSERT INTO t1 VALUES (1, '00:01:02'); INSERT INTO t1 VALUES (2, '10:01:02'); INSERT INTO t1 VALUES (2, '10:01:02.000001'); INSERT INTO t1 VALUES (3, '10:11:02'); INSERT INTO t1 VALUES (3, '10:11:02.000001'); SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) 00:01:02.000000 10:11:02.000001 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 00:01:02.000000 00:01:02.000001 2 10:01:02.000000 10:01:02.000001 3 10:11:02.000000 10:11:02.000001 UPDATE t1 SET b=-b; SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) -10:11:02.000001 -00:01:02.000000 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 -00:01:02.000000 -00:01:02.000001 2 -10:01:02.000000 -10:01:02.000001 3 -10:11:02.000000 -10:11:02.000001 DROP TABLE t1; # # Testing MIN(TIME) and MAX(TIME) in arithmetic expressions and CAST # This covers Item_sum_hybrid::val_int(), val_real(), val_decimal() # CREATE TABLE t1 ( t0 TIME, t1 TIME(1), t2 TIME(2), t3 TIME(3), t4 TIME(4), t5 TIME(5), t6 TIME(6) ); INSERT INTO t1 VALUES ( '10:10:10', '10:10:10.9', '10:10:10.99', '10:10:10.999', '10:10:10.9999', '10:10:10.99999', '10:10:10.999999' ); CREATE TABLE t2 AS SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1 bigint(12) YES NULL MAX(t1) + 1 decimal(13,1) YES NULL MAX(t2) + 1 decimal(14,2) YES NULL MAX(t3) + 1 decimal(15,3) YES NULL MAX(t4) + 1 decimal(16,4) YES NULL MAX(t5) + 1 decimal(17,5) YES NULL MAX(t6) + 1 decimal(18,6) YES NULL SELECT * FROM t2; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 101011 101011.9 101011.99 101011.999 101011.9999 101011.99999 101011.999999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.1, MAX(t1) + 1.1, MAX(t2) + 1.1, MAX(t3) + 1.1, MAX(t4) + 1.1, MAX(t5) + 1.1, MAX(t6) + 1.1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.1 decimal(12,1) YES NULL MAX(t1) + 1.1 decimal(13,1) YES NULL MAX(t2) + 1.1 decimal(14,2) YES NULL MAX(t3) + 1.1 decimal(15,3) YES NULL MAX(t4) + 1.1 decimal(16,4) YES NULL MAX(t5) + 1.1 decimal(17,5) YES NULL MAX(t6) + 1.1 decimal(18,6) YES NULL SELECT * FROM t2; MAX(t0) + 1.1 MAX(t1) + 1.1 MAX(t2) + 1.1 MAX(t3) + 1.1 MAX(t4) + 1.1 MAX(t5) + 1.1 MAX(t6) + 1.1 101011.1 101012.0 101012.09 101012.099 101012.0999 101012.09999 101012.099999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.0e0, MAX(t1) + 1.0e0, MAX(t2) + 1.0e0, MAX(t3) + 1.0e0, MAX(t4) + 1.0e0, MAX(t5) + 1.0e0, MAX(t6) + 1.0e0 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.0e0 double YES NULL MAX(t1) + 1.0e0 double YES NULL MAX(t2) + 1.0e0 double YES NULL MAX(t3) + 1.0e0 double YES NULL MAX(t4) + 1.0e0 double YES NULL MAX(t5) + 1.0e0 double YES NULL MAX(t6) + 1.0e0 double YES NULL SELECT * FROM t2; MAX(t0) + 1.0e0 MAX(t1) + 1.0e0 MAX(t2) + 1.0e0 MAX(t3) + 1.0e0 MAX(t4) + 1.0e0 MAX(t5) + 1.0e0 MAX(t6) + 1.0e0 101011 101011.9 101011.99 101011.999 101011.9999 101011.99999 101011.999999 DROP TABLE t2; SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 101011 101011.9 101011.99 101011.999 101011.9999 101011.99999 101011.999999 SELECT CAST(MAX(t0) AS SIGNED), CAST(MAX(t1) AS SIGNED), CAST(MAX(t2) AS SIGNED), CAST(MAX(t3) AS SIGNED), CAST(MAX(t4) AS SIGNED), CAST(MAX(t5) AS SIGNED), CAST(MAX(t6) AS SIGNED) FROM t1; CAST(MAX(t0) AS SIGNED) CAST(MAX(t1) AS SIGNED) CAST(MAX(t2) AS SIGNED) CAST(MAX(t3) AS SIGNED) CAST(MAX(t4) AS SIGNED) CAST(MAX(t5) AS SIGNED) CAST(MAX(t6) AS SIGNED) 101010 101010 101010 101010 101010 101010 101010 DROP TABLE t1; # # Testing LEAST, GREATEST # SELECT LEAST(CAST('00:00:00.1' as TIME(6)), '00:00:01.1') AS a; a 00:00:00.100000 SELECT LEAST(TIME'00:00:00.1', TIME'00:00:00.12') AS a; a 00:00:00.10 SELECT GREATEST(CAST('00:00:00.1' as TIME(6)), '00:00:01.1') AS a; a 00:00:01.100000 SELECT GREATEST(TIME'00:00:00.1', TIME'00:00:00.12') AS a; a 00:00:00.12 CREATE TABLE t1 AS SELECT LEAST(TIME'00:00:00.1', TIME'00:00:00.12'), GREATEST(TIME'00:00:00.1', TIME'00:00:00.12'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `LEAST(TIME'00:00:00.1', TIME'00:00:00.12')` time(2) NOT NULL DEFAULT '00:00:00.00', `GREATEST(TIME'00:00:00.1', TIME'00:00:00.12')` time(2) NOT NULL DEFAULT '00:00:00.00' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing INSERT with near-maximum and near-minimum supported values. # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('838:59:59.999999'); INSERT INTO t1 VALUES ('838:59:59'); INSERT INTO t1 VALUES ('838:59:59.0000001'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000002'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000003'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000004'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000005'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000006'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000007'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000008'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000009'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.1'); INSERT INTO t1 VALUES ('839:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59'); INSERT INTO t1 VALUES ('-838:59:59.0000001'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000002'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000003'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000004'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000005'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000006'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000007'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000008'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000009'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.000001'); INSERT INTO t1 VALUES ('-838:59:59.999999'); INSERT INTO t1 VALUES ('-839:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-839:00:00.1'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.999999'); SELECT * FROM t1; a 838:59:59.999999 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.100000 838:59:59.999999 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000001 -838:59:59.999999 -838:59:59.999999 -838:59:59.999999 -838:59:59.999999 DROP TABLE t1; # # Testing integer INSERT value # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (20203); INSERT INTO t1 VALUES (8385959); INSERT INTO t1 VALUES (8390000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959); INSERT INTO t1 VALUES (-8390000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 02:02:03.000000 838:59:59.000000 838:59:59.999999 -838:59:59.000000 -838:59:59.999999 DROP TABLE t1; # # Testing decimal INSERT values # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (20203.4); INSERT INTO t1 VALUES (20203.45); INSERT INTO t1 VALUES (20203.456); INSERT INTO t1 VALUES (20203.4567); INSERT INTO t1 VALUES (20203.45678); INSERT INTO t1 VALUES (20203.456789); INSERT INTO t1 VALUES (20203.4567894); INSERT INTO t1 VALUES (20203.4567895); INSERT INTO t1 VALUES (20203.4567896); INSERT INTO t1 VALUES (20203.456789678); INSERT INTO t1 VALUES (8385959.999999); INSERT INTO t1 VALUES (8385959.000000); INSERT INTO t1 VALUES (8385959.0000001); INSERT INTO t1 VALUES (8385959.0000002); INSERT INTO t1 VALUES (8385959.0000003); INSERT INTO t1 VALUES (8385959.0000004); INSERT INTO t1 VALUES (8385959.0000005); INSERT INTO t1 VALUES (8385959.0000006); INSERT INTO t1 VALUES (8385959.0000007); INSERT INTO t1 VALUES (8385959.0000008); INSERT INTO t1 VALUES (8385959.0000009); INSERT INTO t1 VALUES (8385959.000001); INSERT INTO t1 VALUES (8390000.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.000000); INSERT INTO t1 VALUES (-8385959.0000001); INSERT INTO t1 VALUES (-8385959.0000002); INSERT INTO t1 VALUES (-8385959.0000003); INSERT INTO t1 VALUES (-8385959.0000004); INSERT INTO t1 VALUES (-8385959.0000005); INSERT INTO t1 VALUES (-8385959.0000006); INSERT INTO t1 VALUES (-8385959.0000007); INSERT INTO t1 VALUES (-8385959.0000008); INSERT INTO t1 VALUES (-8385959.0000009); INSERT INTO t1 VALUES (-8385959.000001); INSERT INTO t1 VALUES (-8390000.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.999999); SELECT * FROM t1; a 02:02:03.400000 02:02:03.450000 02:02:03.456000 02:02:03.456700 02:02:03.456780 02:02:03.456789 02:02:03.456789 02:02:03.456789 02:02:03.456789 02:02:03.456789 838:59:59.999999 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000001 838:59:59.999999 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000001 -838:59:59.999999 -838:59:59.999999 DROP TABLE t1; # # Testing double INSERT values # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (123.4567e-3); INSERT INTO t1 VALUES (123.4567e-2); INSERT INTO t1 VALUES (123.4567e-1); INSERT INTO t1 VALUES (123.4567e0); INSERT INTO t1 VALUES (123.4567e1); INSERT INTO t1 VALUES (123.4567e2); INSERT INTO t1 VALUES (123.4567e3); INSERT INTO t1 VALUES (8385959.999999e0); INSERT INTO t1 VALUES (8385959e0); INSERT INTO t1 VALUES (8385959.1e0); INSERT INTO t1 VALUES (8390000.0e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.0e0); INSERT INTO t1 VALUES (-8385959.1e0); INSERT INTO t1 VALUES (-8385959.999999e0); INSERT INTO t1 VALUES (-8390000.0e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 00:00:00.123456 00:00:01.234566 00:00:12.345670 00:01:23.456699 00:12:34.567000 01:23:45.670000 12:34:56.699999 838:59:59.999998 838:59:59.000000 838:59:59.099999 838:59:59.999999 -838:59:59.000000 -838:59:59.099999 -838:59:59.999998 -838:59:59.999999 DROP TABLE t1; # # Testing UPDATE between TIME(6) and TIME/INT/DECIMAL/FLOAT # CREATE TABLE t1 (t0 TIME, t6 TIME(6), i INT, d DECIMAL(20,6), f DOUBLE); INSERT INTO t1 (t0) VALUES ('11:22:33'); UPDATE t1 SET t6=t0, i=t0, d=t0, f=t0; SELECT * FROM t1; t0 t6 i d f 11:22:33 11:22:33.000000 112233 112233.000000 112233 UPDATE t1 SET t6='11:22:33.123'; UPDATE t1 SET t0=t6, i=t6, d=t6, f=t6; SELECT * FROM t1; t0 t6 i d f 11:22:33 11:22:33.123000 112233 112233.123000 112233.123 UPDATE t1 SET i=112233, d=112233.123, f=112233.123; UPDATE t1 SET t6=i; SELECT t6 FROM t1; t6 11:22:33.000000 UPDATE t1 SET t6=d; SELECT t6 FROM t1; t6 11:22:33.123000 UPDATE t1 SET t6=f; SELECT t6 FROM t1; t6 11:22:33.123000 DROP TABLE t1; # # Testing JOIN with comparison between TIME(6) and INT # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b INT); INSERT INTO t2 VALUES (112233); INSERT INTO t2 VALUES (-112233); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.000000 112233 -11:22:33.000000 -112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and DECIMAL(20,6) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,6)); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (-112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 112233.123000 -11:22:33.123456 -112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and DECIMAL(20,3) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,3)); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (-112233.123456); Warnings: Note 1265 Data truncated for column 'b' at row 1 SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 112233.123 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and DOUBLE # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b DOUBLE); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (-112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 112233.123 -11:22:33.123456 -112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and VARCHAR # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b VARCHAR(20)); INSERT INTO t2 VALUES ('11:22:33.123'); INSERT INTO t2 VALUES ('-11:22:33.123456'); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 11:22:33.123 -11:22:33.123456 -11:22:33.123456 DROP TABLE t1, t2; # # Testing arithmetic with INT, DECIMAL, FLOAT # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); SELECT a, a + 0, a + 1, a + 1.0, a + 1e0 FROM t1; a a + 0 a + 1 a + 1.0 a + 1e0 -00:00:00.000001 -0.000001 0.999999 0.999999 0.999999 00:00:00.000000 0.000000 1.000000 1.000000 1 00:00:00.000001 0.000001 1.000001 1.000001 1.000001 CREATE TABLE t2 AS SELECT a + 1 AS i, a + 1.0 AS d, a + 1e0 AS f FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `i` decimal(18,6) DEFAULT NULL, `d` decimal(18,6) DEFAULT NULL, `f` double DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1, t2; # # Testing that TIME behaves as INT/DECIMAL for numeric arithmetic # CREATE TABLE t1 (t0 TIME, t3 TIME(3), t6 TIME(6)); CREATE TABLE t2 AS SELECT t0 + 1, t3 + 1, t6 + 1, t0 - 1, t3 - 1, t6 - 1, t0 * 1, t3 * 1, t6 * 1, t0 / 1, t3 / 1, t6 / 1, TIME'10:10:10' + 1, TIME'10:10:10.123' + 1, TIME'10:10:10.123456' + 1, TIME'10:10:10' - 1, TIME'10:10:10.123' - 1, TIME'10:10:10.123456' - 1, TIME'10:10:10' * 1, TIME'10:10:10.123' * 1, TIME'10:10:10.123456' * 1, TIME'10:10:10' / 1, TIME'10:10:10.123' / 1, TIME'10:10:10.123456' / 1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0 + 1` bigint(12) DEFAULT NULL, `t3 + 1` decimal(15,3) DEFAULT NULL, `t6 + 1` decimal(18,6) DEFAULT NULL, `t0 - 1` bigint(12) DEFAULT NULL, `t3 - 1` decimal(15,3) DEFAULT NULL, `t6 - 1` decimal(18,6) DEFAULT NULL, `t0 * 1` bigint(12) DEFAULT NULL, `t3 * 1` decimal(15,3) DEFAULT NULL, `t6 * 1` decimal(18,6) DEFAULT NULL, `t0 / 1` decimal(14,4) DEFAULT NULL, `t3 / 1` decimal(18,7) DEFAULT NULL, `t6 / 1` decimal(21,10) DEFAULT NULL, `TIME'10:10:10' + 1` bigint(12) NOT NULL DEFAULT '0', `TIME'10:10:10.123' + 1` decimal(15,3) NOT NULL DEFAULT '0.000', `TIME'10:10:10.123456' + 1` decimal(18,6) NOT NULL DEFAULT '0.000000', `TIME'10:10:10' - 1` bigint(12) NOT NULL DEFAULT '0', `TIME'10:10:10.123' - 1` decimal(15,3) NOT NULL DEFAULT '0.000', `TIME'10:10:10.123456' - 1` decimal(18,6) NOT NULL DEFAULT '0.000000', `TIME'10:10:10' * 1` bigint(12) NOT NULL DEFAULT '0', `TIME'10:10:10.123' * 1` decimal(15,3) NOT NULL DEFAULT '0.000', `TIME'10:10:10.123456' * 1` decimal(18,6) NOT NULL DEFAULT '0.000000', `TIME'10:10:10' / 1` decimal(14,4) DEFAULT NULL, `TIME'10:10:10.123' / 1` decimal(18,7) DEFAULT NULL, `TIME'10:10:10.123456' / 1` decimal(21,10) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing that TIME behaves as DECIMAL for SUM() and AVG() # SET @t='800:11:12.123456'; CREATE TABLE t1 (t0 TIME, t3 TIME(3), t6 TIME(6)); INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 800:11:12 MAX(t0) 800:11:12 AVG(t0) 8001112.0000 SUM(t0) 8001112 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 800:11:12.123 MAX(t3) 800:11:12.123 AVG(t3) 8001112.1230000 SUM(t3) 8001112.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 800:11:12.123456 MAX(t6) 800:11:12.123456 AVG(t6) 8001112.1234560000 SUM(t6) 8001112.123456 SET @t='800:11:12.000000'; INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 800:11:12 MAX(t0) 800:11:12 AVG(t0) 8001112.0000 SUM(t0) 16002224 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 800:11:12.000 MAX(t3) 800:11:12.123 AVG(t3) 8001112.0615000 SUM(t3) 16002224.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 800:11:12.000000 MAX(t6) 800:11:12.123456 AVG(t6) 8001112.0617280000 SUM(t6) 16002224.123456 CREATE TABLE t2 AS SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0), MIN(t3), MAX(t3), AVG(t3), SUM(t3), MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MIN(t0)` time DEFAULT NULL, `MAX(t0)` time DEFAULT NULL, `AVG(t0)` decimal(14,4) DEFAULT NULL, `SUM(t0)` decimal(32,0) DEFAULT NULL, `MIN(t3)` time(3) DEFAULT NULL, `MAX(t3)` time(3) DEFAULT NULL, `AVG(t3)` decimal(18,7) DEFAULT NULL, `SUM(t3)` decimal(36,3) DEFAULT NULL, `MIN(t6)` time(6) DEFAULT NULL, `MAX(t6)` time(6) DEFAULT NULL, `AVG(t6)` decimal(21,10) DEFAULT NULL, `SUM(t6)` decimal(39,6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing functions ADDTIME, SUBTIME, TIMEDIFF # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-01:00:00.000001'); INSERT INTO t1 VALUES ('-01:00:00.000000'); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('01:00:00.000000'); INSERT INTO t1 VALUES ('01:00:00.000001'); SELECT ADDTIME(a, '00:00:00.000001') FROM t1; ADDTIME(a, '00:00:00.000001') -01:00:00.000000 -00:59:59.999999 00:00:00.000000 00:00:00.000001 00:00:00.000002 01:00:00.000001 01:00:00.000002 SELECT ADDTIME(a, '10:00:00.000001') FROM t1; ADDTIME(a, '10:00:00.000001') 09:00:00.000000 09:00:00.000001 10:00:00.000000 10:00:00.000001 10:00:00.000002 11:00:00.000001 11:00:00.000002 SELECT ADDTIME(a, a) FROM t1; ADDTIME(a, a) -02:00:00.000002 -02:00:00.000000 -00:00:00.000002 00:00:00.000000 00:00:00.000002 02:00:00.000000 02:00:00.000002 SELECT SUBTIME(a, '00:00:00.000001') FROM t1; SUBTIME(a, '00:00:00.000001') -01:00:00.000002 -01:00:00.000001 -00:00:00.000002 -00:00:00.000001 00:00:00.000000 00:59:59.999999 01:00:00.000000 SELECT SUBTIME(a, '10:00:00.000001') FROM t1; SUBTIME(a, '10:00:00.000001') -11:00:00.000002 -11:00:00.000001 -10:00:00.000002 -10:00:00.000001 -10:00:00.000000 -09:00:00.000001 -09:00:00.000000 SELECT SUBTIME(a, a) FROM t1; SUBTIME(a, a) 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 SELECT TIMEDIFF(a, '00:00:00.000001') FROM t1; TIMEDIFF(a, '00:00:00.000001') -01:00:00.000002 -01:00:00.000001 -00:00:00.000002 -00:00:00.000001 00:00:00.000000 00:59:59.999999 01:00:00.000000 SELECT TIMEDIFF('00:00:00.000001', a) FROM t1; TIMEDIFF('00:00:00.000001', a) 01:00:00.000002 01:00:00.000001 00:00:00.000002 00:00:00.000001 00:00:00.000000 -00:59:59.999999 -01:00:00.000000 SELECT TIMEDIFF(a, a) FROM t1; TIMEDIFF(a, a) 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 SELECT TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0))) FROM t1; TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0))) -11:10:10 -11:10:10 -10:10:10 -10:10:10 -10:10:10 -09:10:10 -09:10:10 CREATE TABLE t2 AS SELECT ADDTIME(a, '00:00:00.000001'), ADDTIME(a,a), SUBTIME(a, '00:00:00.000001'), SUBTIME(a,a), TIMEDIFF(a,'00:00:00.000001'), TIMEDIFF(a,a), TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `ADDTIME(a, '00:00:00.000001')` time(6) DEFAULT NULL, `ADDTIME(a,a)` time(6) DEFAULT NULL, `SUBTIME(a, '00:00:00.000001')` time(6) DEFAULT NULL, `SUBTIME(a,a)` time(6) DEFAULT NULL, `TIMEDIFF(a,'00:00:00.000001')` time(6) DEFAULT NULL, `TIMEDIFF(a,a)` time(6) DEFAULT NULL, `TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0)))` time DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(ADDTIME(a, '00:00:00.1')) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MAX(ADDTIME(a, '00:00:00.1'))` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2; MAX(ADDTIME(a, '00:00:00.1')) 01:00:00.100001 DROP TABLE t2; DROP TABLE t1; SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00') 00:00:00 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0') 00:00:00.0 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00') 00:00:00.00 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000') 00:00:00.000 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000') 00:00:00.0000 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000') 00:00:00.00000 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000') 00:00:00.000000 SELECT TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00') 00:00:00.0 SELECT TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00') 00:00:00.00 SELECT TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00') 00:00:00.000 SELECT TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00') 00:00:00.0000 SELECT TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00') 00:00:00.00000 SELECT TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00') 00:00:00.000000 CREATE TABLE t1 AS SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000'), TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `TIMEDIFF(TIME'00:00:00', TIME'00:00:00')` time DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0')` time(1) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00')` time(2) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000')` time(3) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000')` time(4) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000')` time(5) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000')` time(6) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00')` time(1) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00')` time(2) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00')` time(3) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00')` time(4) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00')` time(5) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00')` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00'); ADDTIME(TIME'00:00:00', TIME'00:00:00') 00:00:00 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.0'); ADDTIME(TIME'00:00:00', TIME'00:00:00.0') 00:00:00.0 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.00'); ADDTIME(TIME'00:00:00', TIME'00:00:00.00') 00:00:00.00 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.000') 00:00:00.000 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.0000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.0000') 00:00:00.0000 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.00000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.00000') 00:00:00.00000 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.000000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.000000') 00:00:00.000000 SELECT ADDTIME(TIME'00:00:00.0', TIME'00:00:00'); ADDTIME(TIME'00:00:00.0', TIME'00:00:00') 00:00:00.0 SELECT ADDTIME(TIME'00:00:00.00', TIME'00:00:00'); ADDTIME(TIME'00:00:00.00', TIME'00:00:00') 00:00:00.00 SELECT ADDTIME(TIME'00:00:00.000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.000', TIME'00:00:00') 00:00:00.000 SELECT ADDTIME(TIME'00:00:00.0000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.0000', TIME'00:00:00') 00:00:00.0000 SELECT ADDTIME(TIME'00:00:00.00000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.00000', TIME'00:00:00') 00:00:00.00000 SELECT ADDTIME(TIME'00:00:00.000000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.000000', TIME'00:00:00') 00:00:00.000000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00'); SUBTIME(TIME'00:00:00', TIME'00:00:00') 00:00:00 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.0'); SUBTIME(TIME'00:00:00', TIME'00:00:00.0') 00:00:00.0 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.00'); SUBTIME(TIME'00:00:00', TIME'00:00:00.00') 00:00:00.00 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.000') 00:00:00.000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.0000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.0000') 00:00:00.0000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.00000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.00000') 00:00:00.00000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.000000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.000000') 00:00:00.000000 SELECT SUBTIME(TIME'00:00:00.0', TIME'00:00:00'); SUBTIME(TIME'00:00:00.0', TIME'00:00:00') 00:00:00.0 SELECT SUBTIME(TIME'00:00:00.00', TIME'00:00:00'); SUBTIME(TIME'00:00:00.00', TIME'00:00:00') 00:00:00.00 SELECT SUBTIME(TIME'00:00:00.000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.000', TIME'00:00:00') 00:00:00.000 SELECT SUBTIME(TIME'00:00:00.0000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.0000', TIME'00:00:00') 00:00:00.0000 SELECT SUBTIME(TIME'00:00:00.00000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.00000', TIME'00:00:00') 00:00:00.00000 SELECT SUBTIME(TIME'00:00:00.000000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.000000', TIME'00:00:00') 00:00:00.000000 # # Testing TIME + INTERVAL # SELECT CAST('00:00:00' AS TIME) + INTERVAL 2000 HOUR; CAST('00:00:00' AS TIME) + INTERVAL 2000 HOUR NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT CAST('00:00:00' AS TIME) + INTERVAL 34 DAY; CAST('00:00:00' AS TIME) + INTERVAL 34 DAY 816:00:00 SELECT CAST('00:00:00' AS TIME) + INTERVAL 35 DAY; CAST('00:00:00' AS TIME) + INTERVAL 35 DAY NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT CAST('00:00:00' AS TIME) + INTERVAL 1 MONTH; CAST('00:00:00' AS TIME) + INTERVAL 1 MONTH NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT CAST('00:00:00' AS TIME) + INTERVAL 1 YEAR; CAST('00:00:00' AS TIME) + INTERVAL 1 YEAR NULL Warnings: Warning 1441 Datetime function: time field overflow SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT CAST(CAST('00:00:00.123456' AS TIME(6)) + INTERVAL 1 DAY AS DATETIME(6)); CAST(CAST('00:00:00.123456' AS TIME(6)) + INTERVAL 1 DAY AS DATETIME(6)) 2001-01-02 00:00:00.123456 SET @@timestamp=default; SELECT CAST(CAST('2001-01-01 00:00:00.123456' AS DATETIME(6)) + INTERVAL 30 HOUR AS TIME(6)); CAST(CAST('2001-01-01 00:00:00.123456' AS DATETIME(6)) + INTERVAL 30 HOUR AS TIME(6)) 06:00:00.123456 CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-10:00:00.1'), ('00:00:00.1'), ('10:00:00.1'); SELECT a, a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR FROM t1; a a + INTERVAL 1 HOUR a - INTERVAL 1 HOUR -10:00:00.100000 -09:00:00.100000 -11:00:00.100000 00:00:00.100000 01:00:00.100000 -00:59:59.900000 10:00:00.100000 11:00:00.100000 09:00:00.100000 SELECT a, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND FROM t1; a a + INTERVAL 1 SECOND a - INTERVAL 1 SECOND -10:00:00.100000 -09:59:59.100000 -10:00:01.100000 00:00:00.100000 00:00:01.100000 -00:00:00.900000 10:00:00.100000 10:00:01.100000 09:59:59.100000 SELECT a, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; a a + INTERVAL 1.1 SECOND a - INTERVAL 1.1 SECOND -10:00:00.100000 -09:59:59.000000 -10:00:01.200000 00:00:00.100000 00:00:01.200000 -00:00:01.000000 10:00:00.100000 10:00:01.200000 09:59:59.000000 CREATE TABLE t2 AS SELECT a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; DESCRIBE t2; Field Type Null Key Default Extra a + INTERVAL 1 HOUR time(6) YES NULL a - INTERVAL 1 HOUR time(6) YES NULL a + INTERVAL 1 SECOND time(6) YES NULL a - INTERVAL 1 SECOND time(6) YES NULL a + INTERVAL 1.1 SECOND time(6) YES NULL a - INTERVAL 1.1 SECOND time(6) YES NULL DROP TABLE t2; ALTER TABLE t1 MODIFY a TIME; SELECT a, a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR FROM t1; a a + INTERVAL 1 HOUR a - INTERVAL 1 HOUR -10:00:00 -09:00:00 -11:00:00 00:00:00 01:00:00 -01:00:00 10:00:00 11:00:00 09:00:00 SELECT a, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND FROM t1; a a + INTERVAL 1 SECOND a - INTERVAL 1 SECOND -10:00:00 -09:59:59 -10:00:01 00:00:00 00:00:01 -00:00:01 10:00:00 10:00:01 09:59:59 SELECT a, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; a a + INTERVAL 1.1 SECOND a - INTERVAL 1.1 SECOND -10:00:00 -09:59:58.9 -10:00:01.1 00:00:00 00:00:01.1 -00:00:01.1 10:00:00 10:00:01.1 09:59:58.9 CREATE TABLE t2 AS SELECT a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; DESCRIBE t2; Field Type Null Key Default Extra a + INTERVAL 1 HOUR time YES NULL a - INTERVAL 1 HOUR time YES NULL a + INTERVAL 1 SECOND time YES NULL a - INTERVAL 1 SECOND time YES NULL a + INTERVAL 1.1 SECOND time(1) YES NULL a - INTERVAL 1.1 SECOND time(1) YES NULL DROP TABLE t2; DROP TABLE t1; # # Testing SEC_TO_TIME # CREATE TABLE t1 AS SELECT SEC_TO_TIME(3661), CAST(SEC_TO_TIME(3661) AS CHAR); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `SEC_TO_TIME(3661)` time DEFAULT NULL, `CAST(SEC_TO_TIME(3661) AS CHAR)` varchar(10) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t1; SEC_TO_TIME(3661) CAST(SEC_TO_TIME(3661) AS CHAR) 01:01:01 01:01:01 DROP TABLE t1; CREATE TABLE t1 AS SELECT SEC_TO_TIME(3661.1), SEC_TO_TIME(3661.11), SEC_TO_TIME(3661.111), SEC_TO_TIME(3661.1111), SEC_TO_TIME(3661.11111), SEC_TO_TIME(3661.111111), SEC_TO_TIME(3661.1111111); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `SEC_TO_TIME(3661.1)` time(1) DEFAULT NULL, `SEC_TO_TIME(3661.11)` time(2) DEFAULT NULL, `SEC_TO_TIME(3661.111)` time(3) DEFAULT NULL, `SEC_TO_TIME(3661.1111)` time(4) DEFAULT NULL, `SEC_TO_TIME(3661.11111)` time(5) DEFAULT NULL, `SEC_TO_TIME(3661.111111)` time(6) DEFAULT NULL, `SEC_TO_TIME(3661.1111111)` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t1; SEC_TO_TIME(3661.1) SEC_TO_TIME(3661.11) SEC_TO_TIME(3661.111) SEC_TO_TIME(3661.1111) SEC_TO_TIME(3661.11111) SEC_TO_TIME(3661.111111) SEC_TO_TIME(3661.1111111) 01:01:01.1 01:01:01.11 01:01:01.111 01:01:01.1111 01:01:01.11111 01:01:01.111111 01:01:01.111111 DROP TABLE t1; # # Testing copy from TIME to TIME(6) and vice versa # CREATE TABLE t1 (a TIME(6), b TIME); INSERT INTO t1 VALUES ('01:02:03.123456', '00:00:00'); UPDATE t1 SET b=a; SELECT * FROM t1; a b 01:02:03.123456 01:02:03 UPDATE t1 SET b='10:11:12'; UPDATE t1 SET a=b; SELECT * FROM t1; a b 10:11:12.000000 10:11:12 DROP TABLE t1; # # Testing ALTER from TIME(6) to TIME and vice versa # CREATE TABLE t1 (a TIME); INSERT INTO t1 VALUES ('01:02:03'); ALTER TABLE t1 MODIFY a TIME(6); SELECT * FROM t1; a 01:02:03.000000 UPDATE t1 SET a='01:03:03.456'; SELECT * FROM t1; a 01:03:03.456000 ALTER TABLE t1 MODIFY a TIME; SELECT * FROM t1; a 01:03:03 DROP TABLE t1; # # Testing ALTER between TIME and INT # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33'); ALTER TABLE t1 MODIFY a INT, MODIFY b INT; SELECT * FROM t1; a b 112233 112233 UPDATE t1 SET a=112233, b=112233; ALTER TABLE t1 MODIFY a TIME, MODIFY b TIME(6); SELECT * FROM t1; a b 11:22:33 11:22:33.000000 DROP TABLE t1; # # Testing ALTER between TIME and DOUBLE # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33.1234'); ALTER TABLE t1 MODIFY a DOUBLE, MODIFY b DOUBLE; SELECT * FROM t1; a b 112233 112233.1234 UPDATE t1 SET a=112233, b=112233.1234; ALTER TABLE t1 MODIFY a TIME, MODIFY b TIME(6); SELECT * FROM t1; a b 11:22:33 11:22:33.123400 DROP TABLE t1; # # Testing ALTER between TIME and DECIMAL # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33.1234'); ALTER TABLE t1 MODIFY a DECIMAL(20,6), MODIFY b DECIMAL(20,6); SELECT * FROM t1; a b 112233.000000 112233.123400 UPDATE t1 SET a=112233, b=112233.1234; ALTER TABLE t1 MODIFY a TIME, MODIFY b TIME(6); SELECT * FROM t1; a b 11:22:33 11:22:33.123400 DROP TABLE t1; # # Testing ALTER from TIME to various other temporal types # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME(6), b TIME(6), c TIME(6)); INSERT INTO t1 VALUES ('10:10:10.1', '10:10:10.1', '10:10:10.1'); INSERT INTO t1 VALUES ('34:10:10.1', '34:10:10.1', '34:10:10.1'); ALTER TABLE t1 MODIFY a DATETIME(6), MODIFY b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), MODIFY c DATE; Warnings: Note 1265 Data truncated for column 'c' at row 1 Note 1265 Data truncated for column 'c' at row 2 SELECT * FROM t1; a b c 2001-01-01 10:10:10.100000 2001-01-01 10:10:10.100000 2001-01-01 2001-01-02 10:10:10.100000 2001-01-02 10:10:10.100000 2001-01-02 DROP TABLE t1; SET @@timestamp=default; # # Testing UPDATE from TIME to various other temporal types # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (t6 TIME(6), d DATE, ts6 TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), dt6 DATETIME(6)); INSERT INTO t1 (t6) VALUES ('10:10:10.1'), ('34:10:10.1'); UPDATE t1 SET d=t6, ts6=t6, dt6=t6; Warnings: Note 1265 Data truncated for column 'd' at row 1 Note 1265 Data truncated for column 'd' at row 2 SELECT * FROM t1; t6 d ts6 dt6 10:10:10.100000 2001-01-01 2001-01-01 10:10:10.100000 2001-01-01 10:10:10.100000 34:10:10.100000 2001-01-02 2001-01-02 10:10:10.100000 2001-01-02 10:10:10.100000 DROP TABLE t1; SET @@timestamp=default; # # Testing EXPLAIN EXTENDED SELECT for CAST(TIME(N)) # EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time) AS `CAST('10:10:10' AS TIME)` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(0)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time) AS `CAST('10:10:10' AS TIME(0))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(1)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time(1)) AS `CAST('10:10:10' AS TIME(1))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(2)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time(2)) AS `CAST('10:10:10' AS TIME(2))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(3)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time(3)) AS `CAST('10:10:10' AS TIME(3))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(4)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time(4)) AS `CAST('10:10:10' AS TIME(4))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(5)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time(5)) AS `CAST('10:10:10' AS TIME(5))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(6)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as time(6)) AS `CAST('10:10:10' AS TIME(6))` # # Testing CAST with bad FSPs # SELECT CAST(1 AS TIME(-1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1))' at line 1 SELECT CAST(1 AS TIME(7)); ERROR 42000: Too big precision 7 specified for '1'. Maximum is 6. SELECT CAST(1 AS TIME(31)); ERROR 42000: Too big precision 31 specified for '1'. Maximum is 6. # # Testing conversion from TIME(6) to INT # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:58.499'); INSERT INTO t1 VALUES ('10:10:58.999'); INSERT INTO t1 VALUES ('10:10:59.499'); INSERT INTO t1 VALUES ('10:10:59.999'); INSERT INTO t1 VALUES ('-10:10:58.499'); INSERT INTO t1 VALUES ('-10:10:58.999'); INSERT INTO t1 VALUES ('-10:10:59.499'); INSERT INTO t1 VALUES ('-10:10:59.999'); ALTER TABLE t1 ADD b BIGINT, ADD c TIME(6); UPDATE t1 SET b=a, c=a; ALTER TABLE t1 MODIFY c BIGINT; SELECT a, CAST(a AS SIGNED), b, c FROM t1; a CAST(a AS SIGNED) b c 10:10:58.499000 101058 101058 101058 10:10:58.999000 101058 101058 101058 10:10:59.499000 101059 101059 101059 10:10:59.999000 101059 101059 101059 -10:10:58.499000 -101058 -101058 -101058 -10:10:58.999000 -101058 -101058 -101058 -10:10:59.499000 -101059 -101059 -101059 -10:10:59.999000 -101059 -101059 -101059 DROP TABLE t1; # # Testing INT value and CAST of TIME(6) to various other types # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('11:22:33.999'); INSERT INTO t1 VALUES ('-11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33.999'); INSERT INTO t1 VALUES ('-836:56:56.999999'); SELECT a << 0 FROM t1; a << 0 112233 112233 18446744073709439383 18446744073709439383 18446744073701185960 SELECT CAST(a AS SIGNED) FROM t1; CAST(a AS SIGNED) 112233 112233 -112233 -112233 -8365656 SELECT CAST(a AS UNSIGNED) FROM t1; CAST(a AS UNSIGNED) 112233 112233 18446744073709439383 18446744073709439383 18446744073701185960 Warnings: Note 1105 Cast to unsigned converted negative integer to it's positive complement Note 1105 Cast to unsigned converted negative integer to it's positive complement Note 1105 Cast to unsigned converted negative integer to it's positive complement SELECT CAST(a AS DECIMAL(20,6)) FROM t1; CAST(a AS DECIMAL(20,6)) 112233.123000 112233.999000 -112233.123000 -112233.999000 -8365656.999999 SELECT CAST(a AS DECIMAL(20,3)) FROM t1; CAST(a AS DECIMAL(20,3)) 112233.123 112233.999 -112233.123 -112233.999 -8365657.000 SELECT CAST(a AS CHAR) FROM t1; CAST(a AS CHAR) 11:22:33.123000 11:22:33.999000 -11:22:33.123000 -11:22:33.999000 -836:56:56.999999 SELECT CAST(a AS CHAR(6)) FROM t1; CAST(a AS CHAR(6)) 11:22: 11:22: -11:22 -11:22 -836:5 Warnings: Warning 1292 Truncated incorrect CHAR(6) value: '11:22:33.123000' Warning 1292 Truncated incorrect CHAR(6) value: '11:22:33.999000' Warning 1292 Truncated incorrect CHAR(6) value: '-11:22:33.123000' Warning 1292 Truncated incorrect CHAR(6) value: '-11:22:33.999000' Warning 1292 Truncated incorrect CHAR(6) value: '-836:56:56.999999' CREATE TABLE t2 AS SELECT CAST(a AS CHAR) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(17) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT a, LENGTH(a) FROM t2; a LENGTH(a) 11:22:33.123000 15 11:22:33.999000 15 -11:22:33.123000 16 -11:22:33.999000 16 -836:56:56.999999 17 DROP TABLE t2; DROP TABLE t1; # # Testing DEFAULT value # CREATE TABLE t1 (a TIME(6) NOT NULL DEFAULT '11:22:33.123456'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time(6) NOT NULL DEFAULT '11:22:33.123456' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Mixing TIME(6) with another TIME(6) in IF # CREATE TABLE t1 (a TIME(6), b TIME(6)); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing TIME(N) with TIME(M) in IF # CREATE TABLE t1 (a TIME(1), b TIME(2)); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(2) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing varios TIME(N) in CASE # CREATE TABLE t1 (t0 TIME, t1 TIME(1), t3 TIME(3), t4 TIME(4), t6 TIME(6)); CREATE TABLE t2 AS SELECT CASE WHEN 1 THEN t0 ELSE t1 END, CASE WHEN 1 THEN t0 ELSE t3 END, CASE WHEN 1 THEN t0 ELSE t4 END, CASE WHEN 1 THEN t0 ELSE t6 END, CASE WHEN 1 THEN t1 ELSE t0 END, CASE WHEN 1 THEN t1 ELSE t3 END, CASE WHEN 1 THEN t1 ELSE t4 END, CASE WHEN 1 THEN t1 ELSE t6 END, CASE WHEN 1 THEN t3 ELSE t0 END, CASE WHEN 1 THEN t3 ELSE t1 END, CASE WHEN 1 THEN t3 ELSE t4 END, CASE WHEN 1 THEN t3 ELSE t6 END, CASE WHEN 1 THEN t4 ELSE t0 END, CASE WHEN 1 THEN t4 ELSE t1 END, CASE WHEN 1 THEN t4 ELSE t3 END, CASE WHEN 1 THEN t4 ELSE t6 END, CASE WHEN 1 THEN t6 ELSE t0 END, CASE WHEN 1 THEN t6 ELSE t1 END, CASE WHEN 1 THEN t6 ELSE t3 END, CASE WHEN 1 THEN t6 ELSE t4 END FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CASE WHEN 1 THEN t0 ELSE t1 END` time(1) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t3 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t4 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t0 END` time(1) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t3 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t4 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t0 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t1 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t4 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t0 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t1 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t3 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t0 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t1 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t3 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t4 END` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing various TIME(N) in COALESCE # CREATE TABLE t1 (a TIME(6), b TIME(6), c TIME, d TIME, e TIME(3), f TIME(4)); CREATE TABLE t2 AS SELECT COALESCE(a,b), COALESCE(c,b), COALESCE(c,d), COALESCE(e,f), COALESCE(c,e), COALESCE(c,f) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `COALESCE(a,b)` time(6) DEFAULT NULL, `COALESCE(c,b)` time(6) DEFAULT NULL, `COALESCE(c,d)` time DEFAULT NULL, `COALESCE(e,f)` time(4) DEFAULT NULL, `COALESCE(c,e)` time(3) DEFAULT NULL, `COALESCE(c,f)` time(4) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CONCAT(COALESCE(a, b)), CONCAT(COALESCE(c, b)), CONCAT(COALESCE(c, d)), CONCAT(COALESCE(e, f)), CONCAT(COALESCE(c, e)), CONCAT(COALESCE(c, f)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CONCAT(COALESCE(a, b))` varchar(17) DEFAULT NULL, `CONCAT(COALESCE(c, b))` varchar(17) DEFAULT NULL, `CONCAT(COALESCE(c, d))` varchar(10) DEFAULT NULL, `CONCAT(COALESCE(e, f))` varchar(15) DEFAULT NULL, `CONCAT(COALESCE(c, e))` varchar(14) DEFAULT NULL, `CONCAT(COALESCE(c, f))` varchar(15) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing TIME(6) NOT NULL with another TIME(6) NOT NULL # CREATE TABLE t1 (a TIME(6) NOT NULL, b TIME(6) NOT NULL); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # UNION between TIME(6) and TIME(6) # CREATE TABLE t1 (a TIME(6) NOT NULL, b TIME(6) NOT NULL); INSERT INTO t1 VALUES ('11:22:33.123456', '00:11:22.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY a; a 00:11:22.123456 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between TIME(6) and TIME # CREATE TABLE t1 (t0 TIME NOT NULL, t6 TIME(6) NOT NULL, t3 TIME(3), t4 TIME(4)); INSERT INTO t1 VALUES ('11:22:33.123456', '00:11:22.123456', '00:11:23.123', '00:11:24.123'); CREATE TABLE t2 AS SELECT t0 FROM t1 UNION SELECT t6 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY t0; t0 00:11:22.123456 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT t6 FROM t1 UNION SELECT t0 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t6` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY t6; t6 00:11:22.123456 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT t3 FROM t1 UNION SELECT t4 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t3` time(4) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY t3; t3 00:11:23.1230 00:11:24.1230 DROP TABLE t2; DROP TABLE t1; # # UNION between TIME(6) and various other types # CREATE TABLE t1 (a TIME(6), b INT, c DOUBLE, d DECIMAL(20,6), e VARCHAR(20)); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(17) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT c FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(22) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(22) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT e FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(20) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing TIME(6) field in combination with TIME type functions # CREATE TABLE t1 (a TIME(6), b TIME(6)); INSERT INTO t1 VALUES ('10:00:00.123456', '00:00:00.123456'); INSERT INTO t1 VALUES ('10:00:00', '00:00:00'); SELECT * FROM t1 WHERE a=ADDTIME(b, '10:00:00'); a b 10:00:00.123456 00:00:00.123456 10:00:00.000000 00:00:00.000000 SELECT * FROM t1 WHERE b=TIMEDIFF(a, '10:00:00'); a b 10:00:00.123456 00:00:00.123456 10:00:00.000000 00:00:00.000000 SELECT a FROM t1 WHERE a=MAKETIME(10,0,0); a 10:00:00.000000 SELECT a FROM t1 WHERE a=SEC_TO_TIME(36000); a 10:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (CURTIME(), CURTIME()); SELECT COUNT(*) FROM t1 WHERE a <= CURTIME(); COUNT(*) 1 DROP TABLE t1; # # ORDER BY a TIME(6) function # CREATE TABLE t1(a TIME(6)); INSERT INTO t1 (a) VALUES ('835:00:00.000002'); INSERT INTO t1 (a) VALUES ('835:00:00.000000'); INSERT INTO t1 (a) VALUES ('835:00:00.000001'); INSERT INTO t1 (a) VALUES ('00:00:00.000003'); INSERT INTO t1 (a) VALUES ('00:00:00.000000'); INSERT INTO t1 (a) VALUES ('00:00:00.000001'); INSERT INTO t1 (a) VALUES ('-836:00:00.000000'); INSERT INTO t1 (a) VALUES ('-836:00:00.000001'); INSERT INTO t1 (a) VALUES ('-836:00:00.000002'); SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00'); a -836:00:00.000002 -836:00:00.000001 -836:00:00.000000 00:00:00.000000 00:00:00.000001 00:00:00.000003 835:00:00.000000 835:00:00.000001 835:00:00.000002 SELECT * FROM t1 ORDER BY TIMEDIFF(a, '00:00:00'); a -836:00:00.000002 -836:00:00.000001 -836:00:00.000000 00:00:00.000000 00:00:00.000001 00:00:00.000003 835:00:00.000000 835:00:00.000001 835:00:00.000002 SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00') DESC; a 835:00:00.000002 835:00:00.000001 835:00:00.000000 00:00:00.000003 00:00:00.000001 00:00:00.000000 -836:00:00.000000 -836:00:00.000001 -836:00:00.000002 SELECT * FROM t1 ORDER BY TIMEDIFF(a, '00:00:00') DESC; a 835:00:00.000002 835:00:00.000001 835:00:00.000000 00:00:00.000003 00:00:00.000001 00:00:00.000000 -836:00:00.000000 -836:00:00.000001 -836:00:00.000002 DROP TABLE t1; # # Testing partitions # CREATE TABLE t1 (a TIME(6)) PARTITION BY KEY(a) PARTITIONS 4; INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000002'); INSERT INTO t1 VALUES ('00:00:00.000003'); INSERT INTO t1 VALUES ('00:00:00.000004'); INSERT INTO t1 VALUES ('00:00:00.000005'); INSERT INTO t1 VALUES ('00:00:00.000006'); INSERT INTO t1 VALUES ('00:00:00.000010'); INSERT INTO t1 VALUES ('00:00:00.000011'); INSERT INTO t1 VALUES ('00:00:00.000012'); INSERT INTO t1 VALUES ('00:00:00.000013'); INSERT INTO t1 VALUES ('00:00:00.000014'); INSERT INTO t1 VALUES ('00:00:00.000015'); INSERT INTO t1 VALUES ('00:00:00.000016'); INSERT INTO t1 VALUES ('00:00:00.000110'); INSERT INTO t1 VALUES ('00:00:00.000111'); INSERT INTO t1 VALUES ('00:00:00.000112'); INSERT INTO t1 VALUES ('00:00:00.000113'); INSERT INTO t1 VALUES ('00:00:00.000114'); INSERT INTO t1 VALUES ('00:00:00.000115'); INSERT INTO t1 VALUES ('00:00:00.000116'); INSERT INTO t1 VALUES ('00:00:00.000210'); INSERT INTO t1 VALUES ('00:00:00.000211'); INSERT INTO t1 VALUES ('00:00:00.000212'); INSERT INTO t1 VALUES ('00:00:00.000213'); INSERT INTO t1 VALUES ('00:00:00.000214'); INSERT INTO t1 VALUES ('00:00:00.000215'); INSERT INTO t1 VALUES ('00:00:00.000216'); INSERT INTO t1 VALUES ('00:00:01.000000'); INSERT INTO t1 VALUES ('00:00:01.000001'); INSERT INTO t1 VALUES ('00:00:01.000002'); INSERT INTO t1 VALUES ('00:00:01.000003'); INSERT INTO t1 VALUES ('00:00:01.000004'); INSERT INTO t1 VALUES ('00:00:01.000005'); INSERT INTO t1 VALUES ('00:00:01.000006'); INSERT INTO t1 VALUES ('00:00:02.000000'); INSERT INTO t1 VALUES ('00:00:02.000001'); INSERT INTO t1 VALUES ('00:00:02.000002'); INSERT INTO t1 VALUES ('00:00:02.000003'); INSERT INTO t1 VALUES ('00:00:02.000004'); INSERT INTO t1 VALUES ('00:00:02.000005'); INSERT INTO t1 VALUES ('00:00:02.000006'); SELECT * FROM t1 PARTITION(p0); a 00:00:00.000000 00:00:00.000004 00:00:00.000012 00:00:00.000016 00:00:00.000112 00:00:00.000116 00:00:00.000212 00:00:00.000216 SELECT * FROM t1 PARTITION(p1); a 00:00:00.000003 00:00:00.000011 00:00:00.000015 00:00:00.000111 00:00:00.000115 00:00:00.000211 00:00:00.000215 00:00:01.000001 00:00:01.000003 00:00:01.000005 00:00:02.000000 00:00:02.000001 00:00:02.000002 00:00:02.000003 00:00:02.000004 00:00:02.000005 00:00:02.000006 SELECT * FROM t1 PARTITION(p2); a 00:00:00.000002 00:00:00.000006 00:00:00.000010 00:00:00.000014 00:00:00.000110 00:00:00.000114 00:00:00.000210 00:00:00.000214 SELECT * FROM t1 PARTITION(p3); a 00:00:00.000001 00:00:00.000005 00:00:00.000013 00:00:00.000113 00:00:00.000213 00:00:01.000000 00:00:01.000002 00:00:01.000004 00:00:01.000006 ALTER TABLE t1 PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN ('00:00:00.000200'), PARTITION p1 VALUES LESS THAN ('00:00:01'), PARTITION p2 VALUES LESS THAN ('00:00:02.000003'), PARTITION p3 VALUES LESS THAN MAXVALUE ); SELECT * FROM t1 PARTITION(p0); a 00:00:00.000000 00:00:00.000004 00:00:00.000012 00:00:00.000016 00:00:00.000112 00:00:00.000116 00:00:00.000003 00:00:00.000011 00:00:00.000015 00:00:00.000111 00:00:00.000115 00:00:00.000002 00:00:00.000006 00:00:00.000010 00:00:00.000014 00:00:00.000110 00:00:00.000114 00:00:00.000001 00:00:00.000005 00:00:00.000013 00:00:00.000113 SELECT * FROM t1 PARTITION(p1); a 00:00:00.000212 00:00:00.000216 00:00:00.000211 00:00:00.000215 00:00:00.000210 00:00:00.000214 00:00:00.000213 SELECT * FROM t1 PARTITION(p2); a 00:00:01.000001 00:00:01.000003 00:00:01.000005 00:00:02.000000 00:00:02.000001 00:00:02.000002 00:00:01.000000 00:00:01.000002 00:00:01.000004 00:00:01.000006 SELECT * FROM t1 PARTITION(p3); a 00:00:02.000003 00:00:02.000004 00:00:02.000005 00:00:02.000006 DROP TABLE t1; # # Checking that a TIME literal can be a partition LESS value # CREATE TABLE t1 (s1 TIME(6)) PARTITION BY RANGE COLUMNS (s1) (PARTITION p1 VALUES LESS THAN (TIME'01:01:01.000001')); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `s1` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' /*!50500 PARTITION BY RANGE COLUMNS(s1) (PARTITION p1 VALUES LESS THAN ('01:01:01.000001') ENGINE = TokuDB) */ DROP TABLE t1; # # Testing MAKETIME() # CREATE TABLE t1 AS SELECT CAST(MAKETIME(1, 1, 1) AS TIME) as a, CAST(MAKETIME(1, 1, 1) AS CHAR) as b; SELECT MAKETIME(1, 1, 1); MAKETIME(1, 1, 1) 01:01:01 SELECT MAKETIME(1, 1, 1.0); MAKETIME(1, 1, 1.0) 01:01:01.0 SELECT MAKETIME(1, 1, 1.00); MAKETIME(1, 1, 1.00) 01:01:01.00 SELECT MAKETIME(1, 1, 1.000); MAKETIME(1, 1, 1.000) 01:01:01.000 SELECT MAKETIME(1, 1, 1.0000); MAKETIME(1, 1, 1.0000) 01:01:01.0000 SELECT MAKETIME(1, 1, 1.00000); MAKETIME(1, 1, 1.00000) 01:01:01.00000 SELECT MAKETIME(1, 1, 1.000000); MAKETIME(1, 1, 1.000000) 01:01:01.000000 SELECT MAKETIME(0, 0, -0.123); MAKETIME(0, 0, -0.123) NULL SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time DEFAULT NULL, `b` varchar(10) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 AS SELECT MAKETIME(1, 1, 1), MAKETIME(1, 1, 1.0), MAKETIME(1, 1, 1.00), MAKETIME(1, 1, 1.000), MAKETIME(1, 1, 1.0000), MAKETIME(1, 1, 1.00000), MAKETIME(1, 1, 1.000000); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `MAKETIME(1, 1, 1)` time DEFAULT NULL, `MAKETIME(1, 1, 1.0)` time(1) DEFAULT NULL, `MAKETIME(1, 1, 1.00)` time(2) DEFAULT NULL, `MAKETIME(1, 1, 1.000)` time(3) DEFAULT NULL, `MAKETIME(1, 1, 1.0000)` time(4) DEFAULT NULL, `MAKETIME(1, 1, 1.00000)` time(5) DEFAULT NULL, `MAKETIME(1, 1, 1.000000)` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing rounding with MAKETIME() # CREATE TABLE t1 (hour INT, minute INT, second DECIMAL(23,7)); INSERT INTO t1 VALUES (836, 59, 59.999999), (836, 59, 59.9999990), (836, 59, 59.9999991), (836, 59, 59.9999992), (836, 59, 59.9999993), (836, 59, 59.9999995), (836, 59, 59.9999996), (836, 59, 59.9999997), (836, 59, 59.9999998), (836, 59, 59.9999999); SELECT hour, minute, second, MAKETIME(hour, minute, second) FROM t1; hour minute second MAKETIME(hour, minute, second) 836 59 59.9999990 836:59:59.999999 836 59 59.9999990 836:59:59.999999 836 59 59.9999991 836:59:59.999999 836 59 59.9999992 836:59:59.999999 836 59 59.9999993 836:59:59.999999 836 59 59.9999995 836:59:59.999999 836 59 59.9999996 836:59:59.999999 836 59 59.9999997 836:59:59.999999 836 59 59.9999998 836:59:59.999999 836 59 59.9999999 836:59:59.999999 SELECT hour + 1, minute, second, MAKETIME(hour + 1, minute, second) FROM t1; hour + 1 minute second MAKETIME(hour + 1, minute, second) 837 59 59.9999990 837:59:59.999999 837 59 59.9999990 837:59:59.999999 837 59 59.9999991 837:59:59.999999 837 59 59.9999992 837:59:59.999999 837 59 59.9999993 837:59:59.999999 837 59 59.9999995 837:59:59.999999 837 59 59.9999996 837:59:59.999999 837 59 59.9999997 837:59:59.999999 837 59 59.9999998 837:59:59.999999 837 59 59.9999999 837:59:59.999999 SELECT -hour, minute, second, MAKETIME(-hour, minute, second) FROM t1; -hour minute second MAKETIME(-hour, minute, second) -836 59 59.9999990 -836:59:59.999999 -836 59 59.9999990 -836:59:59.999999 -836 59 59.9999991 -836:59:59.999999 -836 59 59.9999992 -836:59:59.999999 -836 59 59.9999993 -836:59:59.999999 -836 59 59.9999995 -836:59:59.999999 -836 59 59.9999996 -836:59:59.999999 -836 59 59.9999997 -836:59:59.999999 -836 59 59.9999998 -836:59:59.999999 -836 59 59.9999999 -836:59:59.999999 SELECT -hour - 1, minute, second, MAKETIME(-hour - 1, minute, second) FROM t1; -hour - 1 minute second MAKETIME(-hour - 1, minute, second) -837 59 59.9999990 -837:59:59.999999 -837 59 59.9999990 -837:59:59.999999 -837 59 59.9999991 -837:59:59.999999 -837 59 59.9999992 -837:59:59.999999 -837 59 59.9999993 -837:59:59.999999 -837 59 59.9999995 -837:59:59.999999 -837 59 59.9999996 -837:59:59.999999 -837 59 59.9999997 -837:59:59.999999 -837 59 59.9999998 -837:59:59.999999 -837 59 59.9999999 -837:59:59.999999 DROP TABLE t1; SELECT MAKETIME(838, 59, 59.0000005); MAKETIME(838, 59, 59.0000005) 838:59:59.000000 SELECT MAKETIME(838, 59, 59.00000056); MAKETIME(838, 59, 59.00000056) 838:59:59.000000 SELECT MAKETIME(838, 59, 59.000000567); MAKETIME(838, 59, 59.000000567) 838:59:59.000000 SELECT MAKETIME(838, 59, 59.0000005678); MAKETIME(838, 59, 59.0000005678) 838:59:59.000000 SELECT MAKETIME(838, 59, 59.00000056789); MAKETIME(838, 59, 59.00000056789) 838:59:59.000000 # # Testing CAST to TIME and TIME(6) # CREATE TABLE t1 AS SELECT CAST(1 AS TIME), CAST(100000000 AS TIME), CAST(1.1 AS TIME), CAST('1' AS TIME), CAST(1e0 AS TIME), CAST(1 AS TIME(0)), CAST(100000000 AS TIME(0)), CAST(1.1 AS TIME(0)), CAST('1' AS TIME(0)), CAST(1e0 AS TIME(0)), CAST(1 AS TIME(6)), CAST(100000000 AS TIME(6)), CAST(1.1 AS TIME(6)), CAST('1' AS TIME(6)), CAST(1e0 AS TIME(6)); Warnings: Warning 1292 Incorrect datetime value: '100000000' Warning 1292 Incorrect datetime value: '100000000' Warning 1292 Incorrect datetime value: '100000000' SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `CAST(1 AS TIME)` time DEFAULT NULL, `CAST(100000000 AS TIME)` time DEFAULT NULL, `CAST(1.1 AS TIME)` time DEFAULT NULL, `CAST('1' AS TIME)` time DEFAULT NULL, `CAST(1e0 AS TIME)` time DEFAULT NULL, `CAST(1 AS TIME(0))` time DEFAULT NULL, `CAST(100000000 AS TIME(0))` time DEFAULT NULL, `CAST(1.1 AS TIME(0))` time DEFAULT NULL, `CAST('1' AS TIME(0))` time DEFAULT NULL, `CAST(1e0 AS TIME(0))` time DEFAULT NULL, `CAST(1 AS TIME(6))` time(6) DEFAULT NULL, `CAST(100000000 AS TIME(6))` time(6) DEFAULT NULL, `CAST(1.1 AS TIME(6))` time(6) DEFAULT NULL, `CAST('1' AS TIME(6))` time(6) DEFAULT NULL, `CAST(1e0 AS TIME(6))` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33.123456'); CREATE TABLE t2 AS SELECT CAST(a AS TIME), CAST(b AS TIME) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS TIME)` time DEFAULT NULL, `CAST(b AS TIME)` time DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS TIME(0)), CAST(b AS TIME(0)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS TIME(0))` time DEFAULT NULL, `CAST(b AS TIME(0))` time DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS TIME(6)), CAST(b AS TIME(6)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS TIME(6))` time(6) DEFAULT NULL, `CAST(b AS TIME(6))` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; # # Testing Item_time_typecast::val_str # SELECT CONCAT(CAST(a AS TIME(0))), CONCAT(CAST(b AS TIME(0))) FROM t1; CONCAT(CAST(a AS TIME(0))) CONCAT(CAST(b AS TIME(0))) 11:22:33 11:22:33 SELECT CONCAT(CAST(a AS TIME(6))), CONCAT(CAST(b AS TIME(6))) FROM t1; CONCAT(CAST(a AS TIME(6))) CONCAT(CAST(b AS TIME(6))) 11:22:33.000000 11:22:33.123456 SELECT CONCAT(CAST(a AS TIME)), CONCAT(CAST(b AS TIME)) FROM t1; CONCAT(CAST(a AS TIME)) CONCAT(CAST(b AS TIME)) 11:22:33 11:22:33 # # Testing Item_time_typecast::get_time # SELECT CAST(a AS TIME(0)), CAST(b AS TIME(0)) FROM t1; CAST(a AS TIME(0)) CAST(b AS TIME(0)) 11:22:33 11:22:33 SELECT CAST(a AS TIME(6)), CAST(b AS TIME(6)) FROM t1; CAST(a AS TIME(6)) CAST(b AS TIME(6)) 11:22:33.000000 11:22:33.123456 SELECT CAST(a AS TIME), CAST(b AS TIME) FROM t1; CAST(a AS TIME) CAST(b AS TIME) 11:22:33 11:22:33 DROP TABLE t1; # # Testing Item_time_typecast::val_int # SELECT CAST('10:11:12' AS TIME(0)) + 1; CAST('10:11:12' AS TIME(0)) + 1 101113 # # Testing Item_time_typecast::val_decimal # SELECT CAST('10:11:12' AS TIME(6)) + 1; CAST('10:11:12' AS TIME(6)) + 1 101113.000000 # # Testing function TIME(expr) # CREATE TABLE t1 AS SELECT TIME(101), TIME(101.1), TIME(101.12), TIME(101.123), TIME(101.1234), TIME(101.12345), TIME(101.123456), TIME('00:01:01'), TIME('00:01:01.1'), TIME('00:01:01.12'), TIME('00:01:01.123'), TIME('00:01:01.1234'), TIME('00:01:01.12345'), TIME('00:01:01.123456'), TIME(CONCAT('00:01:01', '')), TIME(CONCAT('00:01:01', '.1')), TIME(CONCAT('00:01:01', '.12')), TIME(CONCAT('00:01:01', '.123')), TIME(CONCAT('00:01:01', '.1234')), TIME(CONCAT('00:01:01', '.12345')), TIME(CONCAT('00:01:01', '.123456')), TIME(TIME'00:01:01'), TIME(TIME'00:01:01.1'), TIME(TIME'00:01:01.12'), TIME(TIME'00:01:01.123'), TIME(TIME'00:01:01.1234'), TIME(TIME'00:01:01.12345'), TIME(TIME'00:01:01.123456'), TIME(TIMESTAMP('2001-01-01 00:00:00')), TIME(TIMESTAMP('2001-01-01 00:00:00.1')), TIME(TIMESTAMP('2001-01-01 00:00:00.12')), TIME(TIMESTAMP('2001-01-01 00:00:00.123')), TIME(TIMESTAMP('2001-01-01 00:00:00.1234')), TIME(TIMESTAMP('2001-01-01 00:00:00.12345')), TIME(TIMESTAMP('2001-01-01 00:00:00.123456')); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `TIME(101)` time DEFAULT NULL, `TIME(101.1)` time(1) DEFAULT NULL, `TIME(101.12)` time(2) DEFAULT NULL, `TIME(101.123)` time(3) DEFAULT NULL, `TIME(101.1234)` time(4) DEFAULT NULL, `TIME(101.12345)` time(5) DEFAULT NULL, `TIME(101.123456)` time(6) DEFAULT NULL, `TIME('00:01:01')` time DEFAULT NULL, `TIME('00:01:01.1')` time(1) DEFAULT NULL, `TIME('00:01:01.12')` time(2) DEFAULT NULL, `TIME('00:01:01.123')` time(3) DEFAULT NULL, `TIME('00:01:01.1234')` time(4) DEFAULT NULL, `TIME('00:01:01.12345')` time(5) DEFAULT NULL, `TIME('00:01:01.123456')` time(6) DEFAULT NULL, `TIME(CONCAT('00:01:01', ''))` time DEFAULT NULL, `TIME(CONCAT('00:01:01', '.1'))` time(1) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.12'))` time(2) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.123'))` time(3) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.1234'))` time(4) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.12345'))` time(5) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.123456'))` time(6) DEFAULT NULL, `TIME(TIME'00:01:01')` time DEFAULT NULL, `TIME(TIME'00:01:01.1')` time(1) DEFAULT NULL, `TIME(TIME'00:01:01.12')` time(2) DEFAULT NULL, `TIME(TIME'00:01:01.123')` time(3) DEFAULT NULL, `TIME(TIME'00:01:01.1234')` time(4) DEFAULT NULL, `TIME(TIME'00:01:01.12345')` time(5) DEFAULT NULL, `TIME(TIME'00:01:01.123456')` time(6) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00'))` time DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.1'))` time(1) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.12'))` time(2) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.123'))` time(3) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.1234'))` time(4) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.12345'))` time(5) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.123456'))` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing comparison between a TIME(6) field and a TIME(N) type cast # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:11:12.000000'); INSERT INTO t1 VALUES ('10:11:12.000001'); INSERT INTO t1 VALUES ('10:11:12.000002'); INSERT INTO t1 VALUES ('10:11:12.000003'); SELECT * FROM t1 WHERE a=CAST('10:11:12.000003' AS TIME(6)); a 10:11:12.000003 SELECT * FROM t1 WHERE a=CAST('10:11:12.000003' AS TIME(0)); a 10:11:12.000000 DROP TABLE t1; # # Testing comparison between CAST(x AS TIME(N)) # SELECT CAST('10:11:12.123' AS TIME(0)) = 101112; CAST('10:11:12.123' AS TIME(0)) = 101112 1 SELECT CAST(101112.123 AS TIME(0)) = 101112; CAST(101112.123 AS TIME(0)) = 101112 1 SELECT CAST(101112.123e0 AS TIME(0)) = 101112; CAST(101112.123e0 AS TIME(0)) = 101112 1 # # Testing Item_time_typecast::val_int_packed() # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('24:00:00', '24:00:00.123456'); SELECT CAST('24:00:00' AS TIME) = (SELECT a FROM t1); CAST('24:00:00' AS TIME) = (SELECT a FROM t1) 1 SELECT CAST('24:00:00' AS TIME(6)) = (SELECT a FROM t1); CAST('24:00:00' AS TIME(6)) = (SELECT a FROM t1) 1 SELECT CAST('24:00:00.123456' AS TIME(0)) = (SELECT a FROM t1); CAST('24:00:00.123456' AS TIME(0)) = (SELECT a FROM t1) 1 SELECT CAST('24:00:00.123456' AS TIME(6)) = (SELECT b FROM t1); CAST('24:00:00.123456' AS TIME(6)) = (SELECT b FROM t1) 1 DROP TABLE t1; # # Testing function MICROSECOND # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-11:12:13.000001'); INSERT INTO t1 VALUES ('11:12:13.000001'); INSERT INTO t1 VALUES ('11:12:13.100001'); INSERT INTO t1 VALUES ('11:12:13.999999'); SELECT a, MICROSECOND(a) FROM t1; a MICROSECOND(a) -11:12:13.000001 1 11:12:13.000001 1 11:12:13.100001 100001 11:12:13.999999 999999 SELECT a, EXTRACT(MICROSECOND FROM a) FROM t1; a EXTRACT(MICROSECOND FROM a) -11:12:13.000001 -1 11:12:13.000001 1 11:12:13.100001 100001 11:12:13.999999 999999 DROP TABLE t1; SELECT MICROSECOND(CAST(123.456 AS TIME(6))); MICROSECOND(CAST(123.456 AS TIME(6))) 456000 SELECT EXTRACT(MICROSECOND FROM CAST(123.456 AS TIME(6))); EXTRACT(MICROSECOND FROM CAST(123.456 AS TIME(6))) 456000 # # Testing PS # CREATE TABLE t1 (a TIME(6)); PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; SET @a='11:22:33.123456'; SET @b=112233.123456; SET @c=112233.123456e0; EXECUTE stmt USING @a; DEALLOCATE PREPARE stmt; SELECT * FROM t1; a 11:22:33.123456 PREPARE stmt FROM 'SELECT * FROM t1 WHERE a=?'; EXECUTE stmt USING @a; a 11:22:33.123456 EXECUTE stmt USING @b; a 11:22:33.123456 EXECUTE stmt USING @c; a 11:22:33.123456 DEALLOCATE PREPARE stmt; DROP TABLE t1; # # Testing TIME(6) and user variables # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33.123456'); SET @a='11:22:33.123456'; SELECT * FROM t1 WHERE a=@a; a 11:22:33.123456 SET @a=112233.123456; SELECT * FROM t1 WHERE a=@a; a 11:22:33.123456 SET @a=112233.123456e0; SELECT * FROM t1 WHERE a=@a; a 11:22:33.123456 SET @a=NULL; SELECT a INTO @a FROM t1 LIMIT 1; SELECT @a; @a 11:22:33.123456 DROP TABLE t1; CREATE TABLE t1 AS SELECT @a AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` longtext ) ENGINE=TokuDB DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t1; a 11:22:33.123456 DROP TABLE t1; # # Testing SP # CREATE PROCEDURE p1 () BEGIN DECLARE a TIME(6); SET a='11:22:33.123'; SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIME(6); SET a='11:22:33.123'; SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// a 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1 (a TIME(6)) BEGIN SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(a TIME(6)) BEGIN SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(112233)// a 11:22:33.000000 CALL p1(112233.123)// a 11:22:33.123000 CALL p1(112233.123e0)// a 11:22:33.123000 CALL p1('11:22:33.123')// a 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1() BEGIN DECLARE a TIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// Table Create Table t1 CREATE TABLE `t1` ( `a` time(6) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP PROCEDURE p1// CREATE FUNCTION p1 (a TIME(6)) RETURNS TIME(6) BEGIN RETURN a; END// SHOW CREATE FUNCTION p1// Function sql_mode Create Function character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `p1`(a TIME(6)) RETURNS time(6) BEGIN RETURN a; END latin1 latin1_swedish_ci latin1_swedish_ci SELECT p1(112233.123)// p1(112233.123) 11:22:33.123000 DROP FUNCTION p1// # # Testing INFORMATION_SCHEMA.COLUMNS # CREATE TABLE t1 (a TIME(6)); SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';; TABLE_CATALOG def TABLE_SCHEMA test TABLE_NAME t1 COLUMN_NAME a ORDINAL_POSITION 1 COLUMN_DEFAULT NULL IS_NULLABLE YES DATA_TYPE time CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION 6 CHARACTER_SET_NAME NULL COLLATION_NAME NULL COLUMN_TYPE time(6) COLUMN_KEY EXTRA PRIVILEGES # COLUMN_COMMENT DROP TABLE t1; # # SELECT from a subquery # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.123456'), ('11:11:11.123456'); SELECT * FROM (SELECT * FROM t1) t12; a 00:00:00.123456 11:11:11.123456 DROP TABLE t1; # # Testing IN and = subqueries # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.123456'), ('11:11:11.123456'); SELECT * FROM t1 WHERE a IN (SELECT MIN(a) FROM t1); a 00:00:00.123456 SELECT * FROM t1 WHERE a = (SELECT a FROM t1 ORDER BY a DESC LIMIT 1); a 11:11:11.123456 DROP TABLE t1; # # Testing IN subquery + GROUP # CREATE TABLE t1 (id INT, a TIME(6)); INSERT INTO t1 VALUES (1,'00:00:00.123456'), (1,'11:00:00.123456'); INSERT INTO t1 VALUES (2,'00:01:00.123456'), (2,'11:01:00.123456'); INSERT INTO t1 VALUES (3, NULL); SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM t1 GROUP BY id); id a 1 11:00:00.123456 2 11:01:00.123456 DROP TABLE t1; # # Testing VIEW # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.123456'), ('11:11:11.123456'); CREATE VIEW v1 AS SELECT a FROM t1; SELECT * FROM v1 WHERE a='00:00:00.123456'; a 00:00:00.123456 SELECT MIN(a), MAX(a) FROM v1; MIN(a) MAX(a) 00:00:00.123456 11:11:11.123456 SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM v1); a 11:11:11.123456 DROP VIEW v1; CREATE VIEW v1 AS SELECT MAX(a) AS a FROM t1; SELECT * FROM v1; a 11:11:11.123456 SELECT * FROM t1 WHERE a=(SELECT a FROM v1); a 11:11:11.123456 DROP VIEW v1; DROP TABLE t1; # # Testing hybrid functions in TIME context # SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 10.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 10.1 SECOND) 00:00:10.1 SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 10000000.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 10000000.1 SECOND) NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 100000000000000000.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 100000000000000000.1 SECOND) NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 1000000000000000000000.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 1000000000000000000000.1 SECOND) NULL Warnings: Warning 1292 Truncated incorrect DECIMAL value: '1000000000000000000000.1' CREATE TABLE t1 AS SELECT DATE_ADD(TIME'00:00:00', INTERVAL 1 SECOND) AS t0s0, DATE_ADD(TIME'00:00:00', INTERVAL 1.1 SECOND) AS t0s1, DATE_ADD(TIME'00:00:00', INTERVAL 1.12 SECOND) AS t0s2, DATE_ADD(TIME'00:00:00', INTERVAL 1.123 SECOND) AS t0s3, DATE_ADD(TIME'00:00:00', INTERVAL 1.1234 SECOND) AS t0s4, DATE_ADD(TIME'00:00:00', INTERVAL 1.12345 SECOND) AS t0s5, DATE_ADD(TIME'00:00:00', INTERVAL 1.123456 SECOND) AS t0s6, DATE_ADD(TIME'00:00:00.1', INTERVAL 1 SECOND) AS t1s0, DATE_ADD(TIME'00:00:00.12', INTERVAL 1 SECOND) AS t2s0, DATE_ADD(TIME'00:00:00.123', INTERVAL 1 SECOND) AS t3s0, DATE_ADD(TIME'00:00:00.1234', INTERVAL 1 SECOND) AS t4s0, DATE_ADD(TIME'00:00:00.12345', INTERVAL 1 SECOND) AS t5s0, DATE_ADD(TIME'00:00:00.123456', INTERVAL 1 SECOND) AS t6s0, DATE_ADD(TIME'00:00:00', INTERVAL 1 MICROSECOND) AS t0ms; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `t0s0` time DEFAULT NULL, `t0s1` time(1) DEFAULT NULL, `t0s2` time(2) DEFAULT NULL, `t0s3` time(3) DEFAULT NULL, `t0s4` time(4) DEFAULT NULL, `t0s5` time(5) DEFAULT NULL, `t0s6` time(6) DEFAULT NULL, `t1s0` time(1) DEFAULT NULL, `t2s0` time(2) DEFAULT NULL, `t3s0` time(3) DEFAULT NULL, `t4s0` time(4) DEFAULT NULL, `t5s0` time(5) DEFAULT NULL, `t6s0` time(6) DEFAULT NULL, `t0ms` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 AS SELECT ADDTIME(TIME'00:00:00', TIME'00:00:01') AS t0s0, ADDTIME(TIME'00:00:00', TIME'00:00:01.1') AS t0s1, ADDTIME(TIME'00:00:00', TIME'00:00:01.12') AS t0s2, ADDTIME(TIME'00:00:00', TIME'00:00:01.123') AS t0s3, ADDTIME(TIME'00:00:00', TIME'00:00:01.1234') AS t0s4, ADDTIME(TIME'00:00:00', TIME'00:00:01.12345') AS t0s5, ADDTIME(TIME'00:00:00', TIME'00:00:01.123457') AS t0s6, ADDTIME(TIME'00:00:00.1', TIME '00:00:00') AS t1s0, ADDTIME(TIME'00:00:00.12', TIME '00:00:00') AS t2s0, ADDTIME(TIME'00:00:00.123', TIME '00:00:00') AS t3s0, ADDTIME(TIME'00:00:00.1234', TIME '00:00:00') AS t4s0, ADDTIME(TIME'00:00:00.12345', TIME '00:00:00') AS t5s0, ADDTIME(TIME'00:00:00.123456', TIME '00:00:00') AS t6s0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `t0s0` time DEFAULT NULL, `t0s1` time(1) DEFAULT NULL, `t0s2` time(2) DEFAULT NULL, `t0s3` time(3) DEFAULT NULL, `t0s4` time(4) DEFAULT NULL, `t0s5` time(5) DEFAULT NULL, `t0s6` time(6) DEFAULT NULL, `t1s0` time(1) DEFAULT NULL, `t2s0` time(2) DEFAULT NULL, `t3s0` time(3) DEFAULT NULL, `t4s0` time(4) DEFAULT NULL, `t5s0` time(5) DEFAULT NULL, `t6s0` time(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing that CAST from various fields to TIME rounds. # This tests Field::get_time(). CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES ('838:59:58.0000009'), ('838:59:58.9'), ('-838:59:58.0000009'), ('-838:59:58.9'), ('10:10:10.9999994'), ('10:10:10.9999995'), ('-10:10:10.9999994'), ('-10:10:10.9999995'); SELECT a, CAST(a AS TIME), CAST(a AS TIME(6)) FROM t1; a CAST(a AS TIME) CAST(a AS TIME(6)) 838:59:58.0000009 838:59:58 838:59:58.000000 838:59:58.9 838:59:58 838:59:58.900000 -838:59:58.0000009 -838:59:58 -838:59:58.000000 -838:59:58.9 -838:59:58 -838:59:58.900000 10:10:10.9999994 10:10:10 10:10:10.999999 10:10:10.9999995 10:10:10 10:10:10.999999 -10:10:10.9999994 -10:10:10 -10:10:10.999999 -10:10:10.9999995 -10:10:10 -10:10:10.999999 Warnings: Note 1292 Truncated incorrect time value: '838:59:58.0000009' Note 1292 Truncated incorrect time value: '838:59:58.0000009' Note 1292 Truncated incorrect time value: '-838:59:58.0000009' Note 1292 Truncated incorrect time value: '-838:59:58.0000009' Note 1292 Truncated incorrect time value: '10:10:10.9999994' Note 1292 Truncated incorrect time value: '10:10:10.9999994' Note 1292 Truncated incorrect time value: '10:10:10.9999995' Note 1292 Truncated incorrect time value: '10:10:10.9999995' Note 1292 Truncated incorrect time value: '-10:10:10.9999994' Note 1292 Truncated incorrect time value: '-10:10:10.9999994' Note 1292 Truncated incorrect time value: '-10:10:10.9999995' Note 1292 Truncated incorrect time value: '-10:10:10.9999995' DROP TABLE t1; CREATE TABLE t1 (a DECIMAL(30,7)); INSERT INTO t1 VALUES (8385958.0000009), (8385958.9), (-8385958.0000009), (-8385958.9), (101010.9999994), (101010.9999995), (-101010.9999994), (-101010.9999995); SELECT a, CAST(a AS TIME), CAST(a AS TIME(6)) FROM t1; a CAST(a AS TIME) CAST(a AS TIME(6)) 8385958.0000009 838:59:58 838:59:58.000000 8385958.9000000 838:59:58 838:59:58.900000 -8385958.0000009 -838:59:58 -838:59:58.000000 -8385958.9000000 -838:59:58 -838:59:58.900000 101010.9999994 10:10:10 10:10:10.999999 101010.9999995 10:10:10 10:10:10.999999 -101010.9999994 -10:10:10 -10:10:10.999999 -101010.9999995 -10:10:10 -10:10:10.999999 Warnings: Note 1292 Truncated incorrect time value: '8385958.0000009' Note 1292 Truncated incorrect time value: '8385958.0000009' Note 1292 Truncated incorrect time value: '8385958.9000000' Note 1292 Truncated incorrect time value: '8385958.9000000' Note 1292 Truncated incorrect time value: '-8385958.0000009' Note 1292 Truncated incorrect time value: '-8385958.0000009' Note 1292 Truncated incorrect time value: '-8385958.9000000' Note 1292 Truncated incorrect time value: '-8385958.9000000' Note 1292 Truncated incorrect time value: '101010.9999994' Note 1292 Truncated incorrect time value: '101010.9999994' Note 1292 Truncated incorrect time value: '101010.9999995' Note 1292 Truncated incorrect time value: '101010.9999995' Note 1292 Truncated incorrect time value: '-101010.9999994' Note 1292 Truncated incorrect time value: '-101010.9999994' Note 1292 Truncated incorrect time value: '-101010.9999995' Note 1292 Truncated incorrect time value: '-101010.9999995' ALTER TABLE t1 MODIFY a DOUBLE; SELECT a, CAST(a AS TIME), CAST(a AS TIME(6)) FROM t1; a CAST(a AS TIME) CAST(a AS TIME(6)) 8385958.0000009 838:59:58 838:59:58.000000 8385958.9 838:59:58 838:59:58.900000 -8385958.0000009 -838:59:58 -838:59:58.000000 -8385958.9 -838:59:58 -838:59:58.900000 101010.9999994 10:10:10 10:10:10.999999 101010.9999995 10:10:10 10:10:10.999999 -101010.9999994 -10:10:10 -10:10:10.999999 -101010.9999995 -10:10:10 -10:10:10.999999 DROP TABLE t1; # # Testing that Item::get_time() rounds # SELECT CAST('10:10:10.9999994' AS TIME), CAST('10:10:10.9999995' AS TIME), CAST('10:10:10.9999994' AS TIME(6)), CAST('10:10:10.9999995' AS TIME(6)), CAST(101010.9999994 AS TIME), CAST(101010.9999995 AS TIME), CAST(101010.9999994 AS TIME(6)), CAST(101010.9999995 AS TIME(6)); CAST('10:10:10.9999994' AS TIME) 10:10:10 CAST('10:10:10.9999995' AS TIME) 10:10:10 CAST('10:10:10.9999994' AS TIME(6)) 10:10:10.999999 CAST('10:10:10.9999995' AS TIME(6)) 10:10:10.999999 CAST(101010.9999994 AS TIME) 10:10:10 CAST(101010.9999995 AS TIME) 10:10:10 CAST(101010.9999994 AS TIME(6)) 10:10:10.999999 CAST(101010.9999995 AS TIME(6)) 10:10:10.999999 Warnings: Level Note Code 1292 Message Truncated incorrect time value: '10:10:10.9999994' Level Note Code 1292 Message Truncated incorrect time value: '10:10:10.9999995' Level Note Code 1292 Message Truncated incorrect time value: '10:10:10.9999994' Level Note Code 1292 Message Truncated incorrect time value: '10:10:10.9999995' # # Testing that comparison rounds # CREATE TABLE t1 (t0 TIME, t6 TIME(6)); INSERT INTO t1 VALUES ('00:00:00', '00:00:00.999999'); INSERT INTO t1 VALUES ('00:00:01', '00:00:01.000000'); SELECT t0 FROM t1 WHERE t6='00:00:00.9999998'; t0 00:00:00 Warnings: Note 1292 Truncated incorrect time value: '00:00:00.9999998' SELECT t6 FROM t1 WHERE t6='00:00:00.9999998'; t6 00:00:00.999999 Warnings: Note 1292 Truncated incorrect time value: '00:00:00.9999998' DROP TABLE t1; # # Testing that EXTRACT rounds # SELECT EXTRACT(MICROSECOND FROM '00:00:00.9999994'), EXTRACT(MICROSECOND FROM '00:00:00.9999995'), EXTRACT(MICROSECOND FROM 0.9999994), EXTRACT(MICROSECOND FROM 0.9999995); EXTRACT(MICROSECOND FROM '00:00:00.9999994') 999999 EXTRACT(MICROSECOND FROM '00:00:00.9999995') 999999 EXTRACT(MICROSECOND FROM 0.9999994) 999999 EXTRACT(MICROSECOND FROM 0.9999995) 999999 Warnings: Level Note Code 1292 Message Truncated incorrect time value: '00:00:00.9999994' Level Note Code 1292 Message Truncated incorrect time value: '00:00:00.9999995' # # Testing that DATETIME(0) is a synonym to non-fractional DATETIME # CREATE TABLE t1 (a DATETIME(0) NOT NULL); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` datetime NOT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing internal representation format for DATETIME(N) # CREATE TABLE t1 (a6 VARCHAR(32)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000001'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000002'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000003'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000004'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000005'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000006'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000007'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000008'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000009'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000010'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000011'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000012'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000013'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000014'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000015'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000016'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000099'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.009999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.099999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.100000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.900000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.990000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999900'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999990'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000001'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000002'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000003'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000004'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000005'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000006'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000007'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000008'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000009'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000010'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000011'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000012'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000013'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000014'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000015'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000016'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000099'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.009999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.090000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.099999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.100000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.900000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.990000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999900'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999990'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000001'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000008'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000015'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000016'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000099'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.009999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.099999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.100000'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.900000'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.999999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000001'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000008'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000015'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000016'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000099'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.009999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.099999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.100000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.900000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.990000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999900'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999990'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000008'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000015'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000016'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000099'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.009999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.099999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.100000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.900000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.990000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999900'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999990'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000001'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000008'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000015'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000016'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000099'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.009999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.099999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.100000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.900000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.990000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999900'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999990'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:59.000000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000001'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000008'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000015'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000016'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000099'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.009999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.099999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.100000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.900000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.990000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999900'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999990'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.000000'); ALTER TABLE t1 ADD a0 VARCHAR(32), ADD a1 VARCHAR(32), ADD a2 VARCHAR(32), ADD a3 VARCHAR(32), ADD a4 VARCHAR(32), ADD a5 VARCHAR(32), ADD d0 DATETIME(0), ADD d1 DATETIME(1), ADD d2 DATETIME(2), ADD d3 DATETIME(3), ADD d4 DATETIME(4), ADD d5 DATETIME(5), ADD d6 DATETIME(6); UPDATE t1 SET a0= LEFT(a6, LENGTH(a6) - 6), a1= LEFT(a6, LENGTH(a6) - 5), a2= LEFT(a6, LENGTH(a6) - 4), a3= LEFT(a6, LENGTH(a6) - 3), a4= LEFT(a6, LENGTH(a6) - 2), a5= LEFT(a6, LENGTH(a6) - 1); UPDATE t1 SET d0= a0, d1= a1, d2= a2, d3= a3, d4= a4, d5= a5, d6= a6; SELECT a6, d6, HEX(WEIGHT_STRING(d6)) FROM t1 ORDER BY d6; a6 d6 HEX(WEIGHT_STRING(d6)) 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 303030302D30302D30302030303A30303A30302E303030303030 0000-00-00 00:00:00.000001 0000-00-00 00:00:00.000001 303030302D30302D30302030303A30303A30302E303030303031 0000-00-00 00:00:00.000002 0000-00-00 00:00:00.000002 303030302D30302D30302030303A30303A30302E303030303032 0000-00-00 00:00:00.000003 0000-00-00 00:00:00.000003 303030302D30302D30302030303A30303A30302E303030303033 0000-00-00 00:00:00.000004 0000-00-00 00:00:00.000004 303030302D30302D30302030303A30303A30302E303030303034 0000-00-00 00:00:00.000005 0000-00-00 00:00:00.000005 303030302D30302D30302030303A30303A30302E303030303035 0000-00-00 00:00:00.000006 0000-00-00 00:00:00.000006 303030302D30302D30302030303A30303A30302E303030303036 0000-00-00 00:00:00.000007 0000-00-00 00:00:00.000007 303030302D30302D30302030303A30303A30302E303030303037 0000-00-00 00:00:00.000008 0000-00-00 00:00:00.000008 303030302D30302D30302030303A30303A30302E303030303038 0000-00-00 00:00:00.000009 0000-00-00 00:00:00.000009 303030302D30302D30302030303A30303A30302E303030303039 0000-00-00 00:00:00.000010 0000-00-00 00:00:00.000010 303030302D30302D30302030303A30303A30302E303030303130 0000-00-00 00:00:00.000011 0000-00-00 00:00:00.000011 303030302D30302D30302030303A30303A30302E303030303131 0000-00-00 00:00:00.000012 0000-00-00 00:00:00.000012 303030302D30302D30302030303A30303A30302E303030303132 0000-00-00 00:00:00.000013 0000-00-00 00:00:00.000013 303030302D30302D30302030303A30303A30302E303030303133 0000-00-00 00:00:00.000014 0000-00-00 00:00:00.000014 303030302D30302D30302030303A30303A30302E303030303134 0000-00-00 00:00:00.000015 0000-00-00 00:00:00.000015 303030302D30302D30302030303A30303A30302E303030303135 0000-00-00 00:00:00.000016 0000-00-00 00:00:00.000016 303030302D30302D30302030303A30303A30302E303030303136 0000-00-00 00:00:00.000099 0000-00-00 00:00:00.000099 303030302D30302D30302030303A30303A30302E303030303939 0000-00-00 00:00:00.000999 0000-00-00 00:00:00.000999 303030302D30302D30302030303A30303A30302E303030393939 0000-00-00 00:00:00.009999 0000-00-00 00:00:00.009999 303030302D30302D30302030303A30303A30302E303039393939 0000-00-00 00:00:00.099999 0000-00-00 00:00:00.099999 303030302D30302D30302030303A30303A30302E303939393939 0000-00-00 00:00:00.100000 0000-00-00 00:00:00.100000 303030302D30302D30302030303A30303A30302E313030303030 0000-00-00 00:00:00.900000 0000-00-00 00:00:00.900000 303030302D30302D30302030303A30303A30302E393030303030 0000-00-00 00:00:00.990000 0000-00-00 00:00:00.990000 303030302D30302D30302030303A30303A30302E393930303030 0000-00-00 00:00:00.999000 0000-00-00 00:00:00.999000 303030302D30302D30302030303A30303A30302E393939303030 0000-00-00 00:00:00.999900 0000-00-00 00:00:00.999900 303030302D30302D30302030303A30303A30302E393939393030 0000-00-00 00:00:00.999990 0000-00-00 00:00:00.999990 303030302D30302D30302030303A30303A30302E393939393930 0000-00-00 00:00:00.999999 0000-00-00 00:00:00.999999 303030302D30302D30302030303A30303A30302E393939393939 0000-00-00 00:00:01.000000 0000-00-00 00:00:01.000000 303030302D30302D30302030303A30303A30312E303030303030 0000-00-00 00:00:01.000001 0000-00-00 00:00:01.000001 303030302D30302D30302030303A30303A30312E303030303031 0000-00-00 00:00:01.000002 0000-00-00 00:00:01.000002 303030302D30302D30302030303A30303A30312E303030303032 0000-00-00 00:00:01.000003 0000-00-00 00:00:01.000003 303030302D30302D30302030303A30303A30312E303030303033 0000-00-00 00:00:01.000004 0000-00-00 00:00:01.000004 303030302D30302D30302030303A30303A30312E303030303034 0000-00-00 00:00:01.000005 0000-00-00 00:00:01.000005 303030302D30302D30302030303A30303A30312E303030303035 0000-00-00 00:00:01.000006 0000-00-00 00:00:01.000006 303030302D30302D30302030303A30303A30312E303030303036 0000-00-00 00:00:01.000007 0000-00-00 00:00:01.000007 303030302D30302D30302030303A30303A30312E303030303037 0000-00-00 00:00:01.000008 0000-00-00 00:00:01.000008 303030302D30302D30302030303A30303A30312E303030303038 0000-00-00 00:00:01.000009 0000-00-00 00:00:01.000009 303030302D30302D30302030303A30303A30312E303030303039 0000-00-00 00:00:01.000010 0000-00-00 00:00:01.000010 303030302D30302D30302030303A30303A30312E303030303130 0000-00-00 00:00:01.000011 0000-00-00 00:00:01.000011 303030302D30302D30302030303A30303A30312E303030303131 0000-00-00 00:00:01.000012 0000-00-00 00:00:01.000012 303030302D30302D30302030303A30303A30312E303030303132 0000-00-00 00:00:01.000013 0000-00-00 00:00:01.000013 303030302D30302D30302030303A30303A30312E303030303133 0000-00-00 00:00:01.000014 0000-00-00 00:00:01.000014 303030302D30302D30302030303A30303A30312E303030303134 0000-00-00 00:00:01.000015 0000-00-00 00:00:01.000015 303030302D30302D30302030303A30303A30312E303030303135 0000-00-00 00:00:01.000016 0000-00-00 00:00:01.000016 303030302D30302D30302030303A30303A30312E303030303136 0000-00-00 00:00:01.000099 0000-00-00 00:00:01.000099 303030302D30302D30302030303A30303A30312E303030303939 0000-00-00 00:00:01.000999 0000-00-00 00:00:01.000999 303030302D30302D30302030303A30303A30312E303030393939 0000-00-00 00:00:01.009999 0000-00-00 00:00:01.009999 303030302D30302D30302030303A30303A30312E303039393939 0000-00-00 00:00:01.090000 0000-00-00 00:00:01.090000 303030302D30302D30302030303A30303A30312E303930303030 0000-00-00 00:00:01.099999 0000-00-00 00:00:01.099999 303030302D30302D30302030303A30303A30312E303939393939 0000-00-00 00:00:01.100000 0000-00-00 00:00:01.100000 303030302D30302D30302030303A30303A30312E313030303030 0000-00-00 00:00:01.900000 0000-00-00 00:00:01.900000 303030302D30302D30302030303A30303A30312E393030303030 0000-00-00 00:00:01.990000 0000-00-00 00:00:01.990000 303030302D30302D30302030303A30303A30312E393930303030 0000-00-00 00:00:01.999000 0000-00-00 00:00:01.999000 303030302D30302D30302030303A30303A30312E393939303030 0000-00-00 00:00:01.999900 0000-00-00 00:00:01.999900 303030302D30302D30302030303A30303A30312E393939393030 0000-00-00 00:00:01.999990 0000-00-00 00:00:01.999990 303030302D30302D30302030303A30303A30312E393939393930 0000-00-00 00:00:01.999999 0000-00-00 00:00:01.999999 303030302D30302D30302030303A30303A30312E393939393939 0000-00-00 00:01:00.000001 0000-00-00 00:01:00.000001 303030302D30302D30302030303A30313A30302E303030303031 0000-00-00 00:01:00.000008 0000-00-00 00:01:00.000008 303030302D30302D30302030303A30313A30302E303030303038 0000-00-00 00:01:00.000015 0000-00-00 00:01:00.000015 303030302D30302D30302030303A30313A30302E303030303135 0000-00-00 00:01:00.000016 0000-00-00 00:01:00.000016 303030302D30302D30302030303A30313A30302E303030303136 0000-00-00 00:01:00.000099 0000-00-00 00:01:00.000099 303030302D30302D30302030303A30313A30302E303030303939 0000-00-00 00:01:00.000999 0000-00-00 00:01:00.000999 303030302D30302D30302030303A30313A30302E303030393939 0000-00-00 00:01:00.009999 0000-00-00 00:01:00.009999 303030302D30302D30302030303A30313A30302E303039393939 0000-00-00 00:01:00.099999 0000-00-00 00:01:00.099999 303030302D30302D30302030303A30313A30302E303939393939 0000-00-00 00:01:00.100000 0000-00-00 00:01:00.100000 303030302D30302D30302030303A30313A30302E313030303030 0000-00-00 00:01:00.900000 0000-00-00 00:01:00.900000 303030302D30302D30302030303A30313A30302E393030303030 0000-00-00 00:01:00.999999 0000-00-00 00:01:00.999999 303030302D30302D30302030303A30313A30302E393939393939 0000-00-00 01:00:00.000001 0000-00-00 01:00:00.000001 303030302D30302D30302030313A30303A30302E303030303031 0000-00-00 01:00:00.000008 0000-00-00 01:00:00.000008 303030302D30302D30302030313A30303A30302E303030303038 0000-00-00 01:00:00.000015 0000-00-00 01:00:00.000015 303030302D30302D30302030313A30303A30302E303030303135 0000-00-00 01:00:00.000016 0000-00-00 01:00:00.000016 303030302D30302D30302030313A30303A30302E303030303136 0000-00-00 01:00:00.000099 0000-00-00 01:00:00.000099 303030302D30302D30302030313A30303A30302E303030303939 0000-00-00 01:00:00.000999 0000-00-00 01:00:00.000999 303030302D30302D30302030313A30303A30302E303030393939 0000-00-00 01:00:00.009999 0000-00-00 01:00:00.009999 303030302D30302D30302030313A30303A30302E303039393939 0000-00-00 01:00:00.099999 0000-00-00 01:00:00.099999 303030302D30302D30302030313A30303A30302E303939393939 0000-00-00 01:00:00.100000 0000-00-00 01:00:00.100000 303030302D30302D30302030313A30303A30302E313030303030 0000-00-00 01:00:00.900000 0000-00-00 01:00:00.900000 303030302D30302D30302030313A30303A30302E393030303030 0000-00-00 01:00:00.990000 0000-00-00 01:00:00.990000 303030302D30302D30302030313A30303A30302E393930303030 0000-00-00 01:00:00.999000 0000-00-00 01:00:00.999000 303030302D30302D30302030313A30303A30302E393939303030 0000-00-00 01:00:00.999900 0000-00-00 01:00:00.999900 303030302D30302D30302030313A30303A30302E393939393030 0000-00-00 01:00:00.999990 0000-00-00 01:00:00.999990 303030302D30302D30302030313A30303A30302E393939393930 0000-00-00 01:00:00.999999 0000-00-00 01:00:00.999999 303030302D30302D30302030313A30303A30302E393939393939 1001-01-01 00:00:00.000001 1001-01-01 00:00:00.000001 313030312D30312D30312030303A30303A30302E303030303031 1001-01-01 00:00:00.000008 1001-01-01 00:00:00.000008 313030312D30312D30312030303A30303A30302E303030303038 1001-01-01 00:00:00.000015 1001-01-01 00:00:00.000015 313030312D30312D30312030303A30303A30302E303030303135 1001-01-01 00:00:00.000016 1001-01-01 00:00:00.000016 313030312D30312D30312030303A30303A30302E303030303136 1001-01-01 00:00:00.000099 1001-01-01 00:00:00.000099 313030312D30312D30312030303A30303A30302E303030303939 1001-01-01 00:00:00.000999 1001-01-01 00:00:00.000999 313030312D30312D30312030303A30303A30302E303030393939 1001-01-01 00:00:00.009999 1001-01-01 00:00:00.009999 313030312D30312D30312030303A30303A30302E303039393939 1001-01-01 00:00:00.099999 1001-01-01 00:00:00.099999 313030312D30312D30312030303A30303A30302E303939393939 1001-01-01 00:00:00.100000 1001-01-01 00:00:00.100000 313030312D30312D30312030303A30303A30302E313030303030 1001-01-01 00:00:00.900000 1001-01-01 00:00:00.900000 313030312D30312D30312030303A30303A30302E393030303030 1001-01-01 00:00:00.990000 1001-01-01 00:00:00.990000 313030312D30312D30312030303A30303A30302E393930303030 1001-01-01 00:00:00.999000 1001-01-01 00:00:00.999000 313030312D30312D30312030303A30303A30302E393939303030 1001-01-01 00:00:00.999900 1001-01-01 00:00:00.999900 313030312D30312D30312030303A30303A30302E393939393030 1001-01-01 00:00:00.999990 1001-01-01 00:00:00.999990 313030312D30312D30312030303A30303A30302E393939393930 1001-01-01 00:00:00.999999 1001-01-01 00:00:00.999999 313030312D30312D30312030303A30303A30302E393939393939 2001-01-01 23:59:58.000001 2001-01-01 23:59:58.000001 323030312D30312D30312032333A35393A35382E303030303031 2001-01-01 23:59:58.000008 2001-01-01 23:59:58.000008 323030312D30312D30312032333A35393A35382E303030303038 2001-01-01 23:59:58.000015 2001-01-01 23:59:58.000015 323030312D30312D30312032333A35393A35382E303030303135 2001-01-01 23:59:58.000016 2001-01-01 23:59:58.000016 323030312D30312D30312032333A35393A35382E303030303136 2001-01-01 23:59:58.000099 2001-01-01 23:59:58.000099 323030312D30312D30312032333A35393A35382E303030303939 2001-01-01 23:59:58.000999 2001-01-01 23:59:58.000999 323030312D30312D30312032333A35393A35382E303030393939 2001-01-01 23:59:58.009999 2001-01-01 23:59:58.009999 323030312D30312D30312032333A35393A35382E303039393939 2001-01-01 23:59:58.099999 2001-01-01 23:59:58.099999 323030312D30312D30312032333A35393A35382E303939393939 2001-01-01 23:59:58.100000 2001-01-01 23:59:58.100000 323030312D30312D30312032333A35393A35382E313030303030 2001-01-01 23:59:58.900000 2001-01-01 23:59:58.900000 323030312D30312D30312032333A35393A35382E393030303030 2001-01-01 23:59:58.990000 2001-01-01 23:59:58.990000 323030312D30312D30312032333A35393A35382E393930303030 2001-01-01 23:59:58.999000 2001-01-01 23:59:58.999000 323030312D30312D30312032333A35393A35382E393939303030 2001-01-01 23:59:58.999900 2001-01-01 23:59:58.999900 323030312D30312D30312032333A35393A35382E393939393030 2001-01-01 23:59:58.999990 2001-01-01 23:59:58.999990 323030312D30312D30312032333A35393A35382E393939393930 2001-01-01 23:59:58.999999 2001-01-01 23:59:58.999999 323030312D30312D30312032333A35393A35382E393939393939 2001-01-01 23:59:59.000000 2001-01-01 23:59:59.000000 323030312D30312D30312032333A35393A35392E303030303030 9999-12-31 23:59:58.000001 9999-12-31 23:59:58.000001 393939392D31322D33312032333A35393A35382E303030303031 9999-12-31 23:59:58.000008 9999-12-31 23:59:58.000008 393939392D31322D33312032333A35393A35382E303030303038 9999-12-31 23:59:58.000015 9999-12-31 23:59:58.000015 393939392D31322D33312032333A35393A35382E303030303135 9999-12-31 23:59:58.000016 9999-12-31 23:59:58.000016 393939392D31322D33312032333A35393A35382E303030303136 9999-12-31 23:59:58.000099 9999-12-31 23:59:58.000099 393939392D31322D33312032333A35393A35382E303030303939 9999-12-31 23:59:58.000999 9999-12-31 23:59:58.000999 393939392D31322D33312032333A35393A35382E303030393939 9999-12-31 23:59:58.009999 9999-12-31 23:59:58.009999 393939392D31322D33312032333A35393A35382E303039393939 9999-12-31 23:59:58.099999 9999-12-31 23:59:58.099999 393939392D31322D33312032333A35393A35382E303939393939 9999-12-31 23:59:58.100000 9999-12-31 23:59:58.100000 393939392D31322D33312032333A35393A35382E313030303030 9999-12-31 23:59:58.900000 9999-12-31 23:59:58.900000 393939392D31322D33312032333A35393A35382E393030303030 9999-12-31 23:59:58.990000 9999-12-31 23:59:58.990000 393939392D31322D33312032333A35393A35382E393930303030 9999-12-31 23:59:58.999000 9999-12-31 23:59:58.999000 393939392D31322D33312032333A35393A35382E393939303030 9999-12-31 23:59:58.999900 9999-12-31 23:59:58.999900 393939392D31322D33312032333A35393A35382E393939393030 9999-12-31 23:59:58.999990 9999-12-31 23:59:58.999990 393939392D31322D33312032333A35393A35382E393939393930 9999-12-31 23:59:58.999999 9999-12-31 23:59:58.999999 393939392D31322D33312032333A35393A35382E393939393939 9999-12-31 23:59:59.000000 9999-12-31 23:59:59.000000 393939392D31322D33312032333A35393A35392E303030303030 SELECT a5, d5, HEX(WEIGHT_STRING(d5)) FROM t1 ORDER BY d5, a6; a5 d5 HEX(WEIGHT_STRING(d5)) 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 303030302D30302D30302030303A30303A30302E3030303030 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 303030302D30302D30302030303A30303A30302E3030303031 0000-00-00 00:00:00.00009 0000-00-00 00:00:00.00009 303030302D30302D30302030303A30303A30302E3030303039 0000-00-00 00:00:00.00099 0000-00-00 00:00:00.00099 303030302D30302D30302030303A30303A30302E3030303939 0000-00-00 00:00:00.00999 0000-00-00 00:00:00.00999 303030302D30302D30302030303A30303A30302E3030393939 0000-00-00 00:00:00.09999 0000-00-00 00:00:00.09999 303030302D30302D30302030303A30303A30302E3039393939 0000-00-00 00:00:00.10000 0000-00-00 00:00:00.10000 303030302D30302D30302030303A30303A30302E3130303030 0000-00-00 00:00:00.90000 0000-00-00 00:00:00.90000 303030302D30302D30302030303A30303A30302E3930303030 0000-00-00 00:00:00.99000 0000-00-00 00:00:00.99000 303030302D30302D30302030303A30303A30302E3939303030 0000-00-00 00:00:00.99900 0000-00-00 00:00:00.99900 303030302D30302D30302030303A30303A30302E3939393030 0000-00-00 00:00:00.99990 0000-00-00 00:00:00.99990 303030302D30302D30302030303A30303A30302E3939393930 0000-00-00 00:00:00.99999 0000-00-00 00:00:00.99999 303030302D30302D30302030303A30303A30302E3939393939 0000-00-00 00:00:00.99999 0000-00-00 00:00:00.99999 303030302D30302D30302030303A30303A30302E3939393939 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 303030302D30302D30302030303A30303A30312E3030303030 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 303030302D30302D30302030303A30303A30312E3030303031 0000-00-00 00:00:01.00009 0000-00-00 00:00:01.00009 303030302D30302D30302030303A30303A30312E3030303039 0000-00-00 00:00:01.00099 0000-00-00 00:00:01.00099 303030302D30302D30302030303A30303A30312E3030303939 0000-00-00 00:00:01.00999 0000-00-00 00:00:01.00999 303030302D30302D30302030303A30303A30312E3030393939 0000-00-00 00:00:01.09000 0000-00-00 00:00:01.09000 303030302D30302D30302030303A30303A30312E3039303030 0000-00-00 00:00:01.09999 0000-00-00 00:00:01.09999 303030302D30302D30302030303A30303A30312E3039393939 0000-00-00 00:00:01.10000 0000-00-00 00:00:01.10000 303030302D30302D30302030303A30303A30312E3130303030 0000-00-00 00:00:01.90000 0000-00-00 00:00:01.90000 303030302D30302D30302030303A30303A30312E3930303030 0000-00-00 00:00:01.99000 0000-00-00 00:00:01.99000 303030302D30302D30302030303A30303A30312E3939303030 0000-00-00 00:00:01.99900 0000-00-00 00:00:01.99900 303030302D30302D30302030303A30303A30312E3939393030 0000-00-00 00:00:01.99990 0000-00-00 00:00:01.99990 303030302D30302D30302030303A30303A30312E3939393930 0000-00-00 00:00:01.99999 0000-00-00 00:00:01.99999 303030302D30302D30302030303A30303A30312E3939393939 0000-00-00 00:00:01.99999 0000-00-00 00:00:01.99999 303030302D30302D30302030303A30303A30312E3939393939 0000-00-00 00:01:00.00000 0000-00-00 00:01:00.00000 303030302D30302D30302030303A30313A30302E3030303030 0000-00-00 00:01:00.00000 0000-00-00 00:01:00.00000 303030302D30302D30302030303A30313A30302E3030303030 0000-00-00 00:01:00.00001 0000-00-00 00:01:00.00001 303030302D30302D30302030303A30313A30302E3030303031 0000-00-00 00:01:00.00001 0000-00-00 00:01:00.00001 303030302D30302D30302030303A30313A30302E3030303031 0000-00-00 00:01:00.00009 0000-00-00 00:01:00.00009 303030302D30302D30302030303A30313A30302E3030303039 0000-00-00 00:01:00.00099 0000-00-00 00:01:00.00099 303030302D30302D30302030303A30313A30302E3030303939 0000-00-00 00:01:00.00999 0000-00-00 00:01:00.00999 303030302D30302D30302030303A30313A30302E3030393939 0000-00-00 00:01:00.09999 0000-00-00 00:01:00.09999 303030302D30302D30302030303A30313A30302E3039393939 0000-00-00 00:01:00.10000 0000-00-00 00:01:00.10000 303030302D30302D30302030303A30313A30302E3130303030 0000-00-00 00:01:00.90000 0000-00-00 00:01:00.90000 303030302D30302D30302030303A30313A30302E3930303030 0000-00-00 00:01:00.99999 0000-00-00 00:01:00.99999 303030302D30302D30302030303A30313A30302E3939393939 0000-00-00 01:00:00.00000 0000-00-00 01:00:00.00000 303030302D30302D30302030313A30303A30302E3030303030 0000-00-00 01:00:00.00000 0000-00-00 01:00:00.00000 303030302D30302D30302030313A30303A30302E3030303030 0000-00-00 01:00:00.00001 0000-00-00 01:00:00.00001 303030302D30302D30302030313A30303A30302E3030303031 0000-00-00 01:00:00.00001 0000-00-00 01:00:00.00001 303030302D30302D30302030313A30303A30302E3030303031 0000-00-00 01:00:00.00009 0000-00-00 01:00:00.00009 303030302D30302D30302030313A30303A30302E3030303039 0000-00-00 01:00:00.00099 0000-00-00 01:00:00.00099 303030302D30302D30302030313A30303A30302E3030303939 0000-00-00 01:00:00.00999 0000-00-00 01:00:00.00999 303030302D30302D30302030313A30303A30302E3030393939 0000-00-00 01:00:00.09999 0000-00-00 01:00:00.09999 303030302D30302D30302030313A30303A30302E3039393939 0000-00-00 01:00:00.10000 0000-00-00 01:00:00.10000 303030302D30302D30302030313A30303A30302E3130303030 0000-00-00 01:00:00.90000 0000-00-00 01:00:00.90000 303030302D30302D30302030313A30303A30302E3930303030 0000-00-00 01:00:00.99000 0000-00-00 01:00:00.99000 303030302D30302D30302030313A30303A30302E3939303030 0000-00-00 01:00:00.99900 0000-00-00 01:00:00.99900 303030302D30302D30302030313A30303A30302E3939393030 0000-00-00 01:00:00.99990 0000-00-00 01:00:00.99990 303030302D30302D30302030313A30303A30302E3939393930 0000-00-00 01:00:00.99999 0000-00-00 01:00:00.99999 303030302D30302D30302030313A30303A30302E3939393939 0000-00-00 01:00:00.99999 0000-00-00 01:00:00.99999 303030302D30302D30302030313A30303A30302E3939393939 1001-01-01 00:00:00.00000 1001-01-01 00:00:00.00000 313030312D30312D30312030303A30303A30302E3030303030 1001-01-01 00:00:00.00000 1001-01-01 00:00:00.00000 313030312D30312D30312030303A30303A30302E3030303030 1001-01-01 00:00:00.00001 1001-01-01 00:00:00.00001 313030312D30312D30312030303A30303A30302E3030303031 1001-01-01 00:00:00.00001 1001-01-01 00:00:00.00001 313030312D30312D30312030303A30303A30302E3030303031 1001-01-01 00:00:00.00009 1001-01-01 00:00:00.00009 313030312D30312D30312030303A30303A30302E3030303039 1001-01-01 00:00:00.00099 1001-01-01 00:00:00.00099 313030312D30312D30312030303A30303A30302E3030303939 1001-01-01 00:00:00.00999 1001-01-01 00:00:00.00999 313030312D30312D30312030303A30303A30302E3030393939 1001-01-01 00:00:00.09999 1001-01-01 00:00:00.09999 313030312D30312D30312030303A30303A30302E3039393939 1001-01-01 00:00:00.10000 1001-01-01 00:00:00.10000 313030312D30312D30312030303A30303A30302E3130303030 1001-01-01 00:00:00.90000 1001-01-01 00:00:00.90000 313030312D30312D30312030303A30303A30302E3930303030 1001-01-01 00:00:00.99000 1001-01-01 00:00:00.99000 313030312D30312D30312030303A30303A30302E3939303030 1001-01-01 00:00:00.99900 1001-01-01 00:00:00.99900 313030312D30312D30312030303A30303A30302E3939393030 1001-01-01 00:00:00.99990 1001-01-01 00:00:00.99990 313030312D30312D30312030303A30303A30302E3939393930 1001-01-01 00:00:00.99999 1001-01-01 00:00:00.99999 313030312D30312D30312030303A30303A30302E3939393939 1001-01-01 00:00:00.99999 1001-01-01 00:00:00.99999 313030312D30312D30312030303A30303A30302E3939393939 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 323030312D30312D30312032333A35393A35382E3030303030 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 323030312D30312D30312032333A35393A35382E3030303030 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 323030312D30312D30312032333A35393A35382E3030303031 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 323030312D30312D30312032333A35393A35382E3030303031 2001-01-01 23:59:58.00009 2001-01-01 23:59:58.00009 323030312D30312D30312032333A35393A35382E3030303039 2001-01-01 23:59:58.00099 2001-01-01 23:59:58.00099 323030312D30312D30312032333A35393A35382E3030303939 2001-01-01 23:59:58.00999 2001-01-01 23:59:58.00999 323030312D30312D30312032333A35393A35382E3030393939 2001-01-01 23:59:58.09999 2001-01-01 23:59:58.09999 323030312D30312D30312032333A35393A35382E3039393939 2001-01-01 23:59:58.10000 2001-01-01 23:59:58.10000 323030312D30312D30312032333A35393A35382E3130303030 2001-01-01 23:59:58.90000 2001-01-01 23:59:58.90000 323030312D30312D30312032333A35393A35382E3930303030 2001-01-01 23:59:58.99000 2001-01-01 23:59:58.99000 323030312D30312D30312032333A35393A35382E3939303030 2001-01-01 23:59:58.99900 2001-01-01 23:59:58.99900 323030312D30312D30312032333A35393A35382E3939393030 2001-01-01 23:59:58.99990 2001-01-01 23:59:58.99990 323030312D30312D30312032333A35393A35382E3939393930 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 323030312D30312D30312032333A35393A35382E3939393939 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 323030312D30312D30312032333A35393A35382E3939393939 2001-01-01 23:59:59.00000 2001-01-01 23:59:59.00000 323030312D30312D30312032333A35393A35392E3030303030 9999-12-31 23:59:58.00000 9999-12-31 23:59:58.00000 393939392D31322D33312032333A35393A35382E3030303030 9999-12-31 23:59:58.00000 9999-12-31 23:59:58.00000 393939392D31322D33312032333A35393A35382E3030303030 9999-12-31 23:59:58.00001 9999-12-31 23:59:58.00001 393939392D31322D33312032333A35393A35382E3030303031 9999-12-31 23:59:58.00001 9999-12-31 23:59:58.00001 393939392D31322D33312032333A35393A35382E3030303031 9999-12-31 23:59:58.00009 9999-12-31 23:59:58.00009 393939392D31322D33312032333A35393A35382E3030303039 9999-12-31 23:59:58.00099 9999-12-31 23:59:58.00099 393939392D31322D33312032333A35393A35382E3030303939 9999-12-31 23:59:58.00999 9999-12-31 23:59:58.00999 393939392D31322D33312032333A35393A35382E3030393939 9999-12-31 23:59:58.09999 9999-12-31 23:59:58.09999 393939392D31322D33312032333A35393A35382E3039393939 9999-12-31 23:59:58.10000 9999-12-31 23:59:58.10000 393939392D31322D33312032333A35393A35382E3130303030 9999-12-31 23:59:58.90000 9999-12-31 23:59:58.90000 393939392D31322D33312032333A35393A35382E3930303030 9999-12-31 23:59:58.99000 9999-12-31 23:59:58.99000 393939392D31322D33312032333A35393A35382E3939303030 9999-12-31 23:59:58.99900 9999-12-31 23:59:58.99900 393939392D31322D33312032333A35393A35382E3939393030 9999-12-31 23:59:58.99990 9999-12-31 23:59:58.99990 393939392D31322D33312032333A35393A35382E3939393930 9999-12-31 23:59:58.99999 9999-12-31 23:59:58.99999 393939392D31322D33312032333A35393A35382E3939393939 9999-12-31 23:59:58.99999 9999-12-31 23:59:58.99999 393939392D31322D33312032333A35393A35382E3939393939 9999-12-31 23:59:59.00000 9999-12-31 23:59:59.00000 393939392D31322D33312032333A35393A35392E3030303030 SELECT a4, d4, HEX(WEIGHT_STRING(d4)) FROM t1 ORDER BY d4, a6; a4 d4 HEX(WEIGHT_STRING(d4)) 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 303030302D30302D30302030303A30303A30302E30303030 0000-00-00 00:00:00.0009 0000-00-00 00:00:00.0009 303030302D30302D30302030303A30303A30302E30303039 0000-00-00 00:00:00.0099 0000-00-00 00:00:00.0099 303030302D30302D30302030303A30303A30302E30303939 0000-00-00 00:00:00.0999 0000-00-00 00:00:00.0999 303030302D30302D30302030303A30303A30302E30393939 0000-00-00 00:00:00.1000 0000-00-00 00:00:00.1000 303030302D30302D30302030303A30303A30302E31303030 0000-00-00 00:00:00.9000 0000-00-00 00:00:00.9000 303030302D30302D30302030303A30303A30302E39303030 0000-00-00 00:00:00.9900 0000-00-00 00:00:00.9900 303030302D30302D30302030303A30303A30302E39393030 0000-00-00 00:00:00.9990 0000-00-00 00:00:00.9990 303030302D30302D30302030303A30303A30302E39393930 0000-00-00 00:00:00.9999 0000-00-00 00:00:00.9999 303030302D30302D30302030303A30303A30302E39393939 0000-00-00 00:00:00.9999 0000-00-00 00:00:00.9999 303030302D30302D30302030303A30303A30302E39393939 0000-00-00 00:00:00.9999 0000-00-00 00:00:00.9999 303030302D30302D30302030303A30303A30302E39393939 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 303030302D30302D30302030303A30303A30312E30303030 0000-00-00 00:00:01.0009 0000-00-00 00:00:01.0009 303030302D30302D30302030303A30303A30312E30303039 0000-00-00 00:00:01.0099 0000-00-00 00:00:01.0099 303030302D30302D30302030303A30303A30312E30303939 0000-00-00 00:00:01.0900 0000-00-00 00:00:01.0900 303030302D30302D30302030303A30303A30312E30393030 0000-00-00 00:00:01.0999 0000-00-00 00:00:01.0999 303030302D30302D30302030303A30303A30312E30393939 0000-00-00 00:00:01.1000 0000-00-00 00:00:01.1000 303030302D30302D30302030303A30303A30312E31303030 0000-00-00 00:00:01.9000 0000-00-00 00:00:01.9000 303030302D30302D30302030303A30303A30312E39303030 0000-00-00 00:00:01.9900 0000-00-00 00:00:01.9900 303030302D30302D30302030303A30303A30312E39393030 0000-00-00 00:00:01.9990 0000-00-00 00:00:01.9990 303030302D30302D30302030303A30303A30312E39393930 0000-00-00 00:00:01.9999 0000-00-00 00:00:01.9999 303030302D30302D30302030303A30303A30312E39393939 0000-00-00 00:00:01.9999 0000-00-00 00:00:01.9999 303030302D30302D30302030303A30303A30312E39393939 0000-00-00 00:00:01.9999 0000-00-00 00:00:01.9999 303030302D30302D30302030303A30303A30312E39393939 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 303030302D30302D30302030303A30313A30302E30303030 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 303030302D30302D30302030303A30313A30302E30303030 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 303030302D30302D30302030303A30313A30302E30303030 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 303030302D30302D30302030303A30313A30302E30303030 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 303030302D30302D30302030303A30313A30302E30303030 0000-00-00 00:01:00.0009 0000-00-00 00:01:00.0009 303030302D30302D30302030303A30313A30302E30303039 0000-00-00 00:01:00.0099 0000-00-00 00:01:00.0099 303030302D30302D30302030303A30313A30302E30303939 0000-00-00 00:01:00.0999 0000-00-00 00:01:00.0999 303030302D30302D30302030303A30313A30302E30393939 0000-00-00 00:01:00.1000 0000-00-00 00:01:00.1000 303030302D30302D30302030303A30313A30302E31303030 0000-00-00 00:01:00.9000 0000-00-00 00:01:00.9000 303030302D30302D30302030303A30313A30302E39303030 0000-00-00 00:01:00.9999 0000-00-00 00:01:00.9999 303030302D30302D30302030303A30313A30302E39393939 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 303030302D30302D30302030313A30303A30302E30303030 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 303030302D30302D30302030313A30303A30302E30303030 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 303030302D30302D30302030313A30303A30302E30303030 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 303030302D30302D30302030313A30303A30302E30303030 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 303030302D30302D30302030313A30303A30302E30303030 0000-00-00 01:00:00.0009 0000-00-00 01:00:00.0009 303030302D30302D30302030313A30303A30302E30303039 0000-00-00 01:00:00.0099 0000-00-00 01:00:00.0099 303030302D30302D30302030313A30303A30302E30303939 0000-00-00 01:00:00.0999 0000-00-00 01:00:00.0999 303030302D30302D30302030313A30303A30302E30393939 0000-00-00 01:00:00.1000 0000-00-00 01:00:00.1000 303030302D30302D30302030313A30303A30302E31303030 0000-00-00 01:00:00.9000 0000-00-00 01:00:00.9000 303030302D30302D30302030313A30303A30302E39303030 0000-00-00 01:00:00.9900 0000-00-00 01:00:00.9900 303030302D30302D30302030313A30303A30302E39393030 0000-00-00 01:00:00.9990 0000-00-00 01:00:00.9990 303030302D30302D30302030313A30303A30302E39393930 0000-00-00 01:00:00.9999 0000-00-00 01:00:00.9999 303030302D30302D30302030313A30303A30302E39393939 0000-00-00 01:00:00.9999 0000-00-00 01:00:00.9999 303030302D30302D30302030313A30303A30302E39393939 0000-00-00 01:00:00.9999 0000-00-00 01:00:00.9999 303030302D30302D30302030313A30303A30302E39393939 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 313030312D30312D30312030303A30303A30302E30303030 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 313030312D30312D30312030303A30303A30302E30303030 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 313030312D30312D30312030303A30303A30302E30303030 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 313030312D30312D30312030303A30303A30302E30303030 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 313030312D30312D30312030303A30303A30302E30303030 1001-01-01 00:00:00.0009 1001-01-01 00:00:00.0009 313030312D30312D30312030303A30303A30302E30303039 1001-01-01 00:00:00.0099 1001-01-01 00:00:00.0099 313030312D30312D30312030303A30303A30302E30303939 1001-01-01 00:00:00.0999 1001-01-01 00:00:00.0999 313030312D30312D30312030303A30303A30302E30393939 1001-01-01 00:00:00.1000 1001-01-01 00:00:00.1000 313030312D30312D30312030303A30303A30302E31303030 1001-01-01 00:00:00.9000 1001-01-01 00:00:00.9000 313030312D30312D30312030303A30303A30302E39303030 1001-01-01 00:00:00.9900 1001-01-01 00:00:00.9900 313030312D30312D30312030303A30303A30302E39393030 1001-01-01 00:00:00.9990 1001-01-01 00:00:00.9990 313030312D30312D30312030303A30303A30302E39393930 1001-01-01 00:00:00.9999 1001-01-01 00:00:00.9999 313030312D30312D30312030303A30303A30302E39393939 1001-01-01 00:00:00.9999 1001-01-01 00:00:00.9999 313030312D30312D30312030303A30303A30302E39393939 1001-01-01 00:00:00.9999 1001-01-01 00:00:00.9999 313030312D30312D30312030303A30303A30302E39393939 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0009 2001-01-01 23:59:58.0009 323030312D30312D30312032333A35393A35382E30303039 2001-01-01 23:59:58.0099 2001-01-01 23:59:58.0099 323030312D30312D30312032333A35393A35382E30303939 2001-01-01 23:59:58.0999 2001-01-01 23:59:58.0999 323030312D30312D30312032333A35393A35382E30393939 2001-01-01 23:59:58.1000 2001-01-01 23:59:58.1000 323030312D30312D30312032333A35393A35382E31303030 2001-01-01 23:59:58.9000 2001-01-01 23:59:58.9000 323030312D30312D30312032333A35393A35382E39303030 2001-01-01 23:59:58.9900 2001-01-01 23:59:58.9900 323030312D30312D30312032333A35393A35382E39393030 2001-01-01 23:59:58.9990 2001-01-01 23:59:58.9990 323030312D30312D30312032333A35393A35382E39393930 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 323030312D30312D30312032333A35393A35382E39393939 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 323030312D30312D30312032333A35393A35382E39393939 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 323030312D30312D30312032333A35393A35382E39393939 2001-01-01 23:59:59.0000 2001-01-01 23:59:59.0000 323030312D30312D30312032333A35393A35392E30303030 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 393939392D31322D33312032333A35393A35382E30303030 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 393939392D31322D33312032333A35393A35382E30303030 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 393939392D31322D33312032333A35393A35382E30303030 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 393939392D31322D33312032333A35393A35382E30303030 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 393939392D31322D33312032333A35393A35382E30303030 9999-12-31 23:59:58.0009 9999-12-31 23:59:58.0009 393939392D31322D33312032333A35393A35382E30303039 9999-12-31 23:59:58.0099 9999-12-31 23:59:58.0099 393939392D31322D33312032333A35393A35382E30303939 9999-12-31 23:59:58.0999 9999-12-31 23:59:58.0999 393939392D31322D33312032333A35393A35382E30393939 9999-12-31 23:59:58.1000 9999-12-31 23:59:58.1000 393939392D31322D33312032333A35393A35382E31303030 9999-12-31 23:59:58.9000 9999-12-31 23:59:58.9000 393939392D31322D33312032333A35393A35382E39303030 9999-12-31 23:59:58.9900 9999-12-31 23:59:58.9900 393939392D31322D33312032333A35393A35382E39393030 9999-12-31 23:59:58.9990 9999-12-31 23:59:58.9990 393939392D31322D33312032333A35393A35382E39393930 9999-12-31 23:59:58.9999 9999-12-31 23:59:58.9999 393939392D31322D33312032333A35393A35382E39393939 9999-12-31 23:59:58.9999 9999-12-31 23:59:58.9999 393939392D31322D33312032333A35393A35382E39393939 9999-12-31 23:59:58.9999 9999-12-31 23:59:58.9999 393939392D31322D33312032333A35393A35382E39393939 9999-12-31 23:59:59.0000 9999-12-31 23:59:59.0000 393939392D31322D33312032333A35393A35392E30303030 SELECT a3, d3, HEX(WEIGHT_STRING(d3)) FROM t1 ORDER BY d3, a6; a3 d3 HEX(WEIGHT_STRING(d3)) 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 303030302D30302D30302030303A30303A30302E303030 0000-00-00 00:00:00.009 0000-00-00 00:00:00.009 303030302D30302D30302030303A30303A30302E303039 0000-00-00 00:00:00.099 0000-00-00 00:00:00.099 303030302D30302D30302030303A30303A30302E303939 0000-00-00 00:00:00.100 0000-00-00 00:00:00.100 303030302D30302D30302030303A30303A30302E313030 0000-00-00 00:00:00.900 0000-00-00 00:00:00.900 303030302D30302D30302030303A30303A30302E393030 0000-00-00 00:00:00.990 0000-00-00 00:00:00.990 303030302D30302D30302030303A30303A30302E393930 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 303030302D30302D30302030303A30303A30302E393939 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 303030302D30302D30302030303A30303A30302E393939 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 303030302D30302D30302030303A30303A30302E393939 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 303030302D30302D30302030303A30303A30302E393939 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 303030302D30302D30302030303A30303A30312E303030 0000-00-00 00:00:01.009 0000-00-00 00:00:01.009 303030302D30302D30302030303A30303A30312E303039 0000-00-00 00:00:01.090 0000-00-00 00:00:01.090 303030302D30302D30302030303A30303A30312E303930 0000-00-00 00:00:01.099 0000-00-00 00:00:01.099 303030302D30302D30302030303A30303A30312E303939 0000-00-00 00:00:01.100 0000-00-00 00:00:01.100 303030302D30302D30302030303A30303A30312E313030 0000-00-00 00:00:01.900 0000-00-00 00:00:01.900 303030302D30302D30302030303A30303A30312E393030 0000-00-00 00:00:01.990 0000-00-00 00:00:01.990 303030302D30302D30302030303A30303A30312E393930 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 303030302D30302D30302030303A30303A30312E393939 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 303030302D30302D30302030303A30303A30312E393939 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 303030302D30302D30302030303A30303A30312E393939 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 303030302D30302D30302030303A30303A30312E393939 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 303030302D30302D30302030303A30313A30302E303030 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 303030302D30302D30302030303A30313A30302E303030 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 303030302D30302D30302030303A30313A30302E303030 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 303030302D30302D30302030303A30313A30302E303030 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 303030302D30302D30302030303A30313A30302E303030 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 303030302D30302D30302030303A30313A30302E303030 0000-00-00 00:01:00.009 0000-00-00 00:01:00.009 303030302D30302D30302030303A30313A30302E303039 0000-00-00 00:01:00.099 0000-00-00 00:01:00.099 303030302D30302D30302030303A30313A30302E303939 0000-00-00 00:01:00.100 0000-00-00 00:01:00.100 303030302D30302D30302030303A30313A30302E313030 0000-00-00 00:01:00.900 0000-00-00 00:01:00.900 303030302D30302D30302030303A30313A30302E393030 0000-00-00 00:01:00.999 0000-00-00 00:01:00.999 303030302D30302D30302030303A30313A30302E393939 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 303030302D30302D30302030313A30303A30302E303030 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 303030302D30302D30302030313A30303A30302E303030 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 303030302D30302D30302030313A30303A30302E303030 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 303030302D30302D30302030313A30303A30302E303030 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 303030302D30302D30302030313A30303A30302E303030 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 303030302D30302D30302030313A30303A30302E303030 0000-00-00 01:00:00.009 0000-00-00 01:00:00.009 303030302D30302D30302030313A30303A30302E303039 0000-00-00 01:00:00.099 0000-00-00 01:00:00.099 303030302D30302D30302030313A30303A30302E303939 0000-00-00 01:00:00.100 0000-00-00 01:00:00.100 303030302D30302D30302030313A30303A30302E313030 0000-00-00 01:00:00.900 0000-00-00 01:00:00.900 303030302D30302D30302030313A30303A30302E393030 0000-00-00 01:00:00.990 0000-00-00 01:00:00.990 303030302D30302D30302030313A30303A30302E393930 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 303030302D30302D30302030313A30303A30302E393939 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 303030302D30302D30302030313A30303A30302E393939 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 303030302D30302D30302030313A30303A30302E393939 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 303030302D30302D30302030313A30303A30302E393939 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 313030312D30312D30312030303A30303A30302E303030 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 313030312D30312D30312030303A30303A30302E303030 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 313030312D30312D30312030303A30303A30302E303030 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 313030312D30312D30312030303A30303A30302E303030 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 313030312D30312D30312030303A30303A30302E303030 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 313030312D30312D30312030303A30303A30302E303030 1001-01-01 00:00:00.009 1001-01-01 00:00:00.009 313030312D30312D30312030303A30303A30302E303039 1001-01-01 00:00:00.099 1001-01-01 00:00:00.099 313030312D30312D30312030303A30303A30302E303939 1001-01-01 00:00:00.100 1001-01-01 00:00:00.100 313030312D30312D30312030303A30303A30302E313030 1001-01-01 00:00:00.900 1001-01-01 00:00:00.900 313030312D30312D30312030303A30303A30302E393030 1001-01-01 00:00:00.990 1001-01-01 00:00:00.990 313030312D30312D30312030303A30303A30302E393930 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 313030312D30312D30312030303A30303A30302E393939 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 313030312D30312D30312030303A30303A30302E393939 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 313030312D30312D30312030303A30303A30302E393939 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 313030312D30312D30312030303A30303A30302E393939 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.009 2001-01-01 23:59:58.009 323030312D30312D30312032333A35393A35382E303039 2001-01-01 23:59:58.099 2001-01-01 23:59:58.099 323030312D30312D30312032333A35393A35382E303939 2001-01-01 23:59:58.100 2001-01-01 23:59:58.100 323030312D30312D30312032333A35393A35382E313030 2001-01-01 23:59:58.900 2001-01-01 23:59:58.900 323030312D30312D30312032333A35393A35382E393030 2001-01-01 23:59:58.990 2001-01-01 23:59:58.990 323030312D30312D30312032333A35393A35382E393930 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:59.000 2001-01-01 23:59:59.000 323030312D30312D30312032333A35393A35392E303030 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 393939392D31322D33312032333A35393A35382E303030 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 393939392D31322D33312032333A35393A35382E303030 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 393939392D31322D33312032333A35393A35382E303030 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 393939392D31322D33312032333A35393A35382E303030 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 393939392D31322D33312032333A35393A35382E303030 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 393939392D31322D33312032333A35393A35382E303030 9999-12-31 23:59:58.009 9999-12-31 23:59:58.009 393939392D31322D33312032333A35393A35382E303039 9999-12-31 23:59:58.099 9999-12-31 23:59:58.099 393939392D31322D33312032333A35393A35382E303939 9999-12-31 23:59:58.100 9999-12-31 23:59:58.100 393939392D31322D33312032333A35393A35382E313030 9999-12-31 23:59:58.900 9999-12-31 23:59:58.900 393939392D31322D33312032333A35393A35382E393030 9999-12-31 23:59:58.990 9999-12-31 23:59:58.990 393939392D31322D33312032333A35393A35382E393930 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 393939392D31322D33312032333A35393A35382E393939 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 393939392D31322D33312032333A35393A35382E393939 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 393939392D31322D33312032333A35393A35382E393939 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 393939392D31322D33312032333A35393A35382E393939 9999-12-31 23:59:59.000 9999-12-31 23:59:59.000 393939392D31322D33312032333A35393A35392E303030 SELECT a2, d2, HEX(WEIGHT_STRING(d2)) FROM t1 ORDER BY d2, a6; a2 d2 HEX(WEIGHT_STRING(d2)) 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 303030302D30302D30302030303A30303A30302E3030 0000-00-00 00:00:00.09 0000-00-00 00:00:00.09 303030302D30302D30302030303A30303A30302E3039 0000-00-00 00:00:00.10 0000-00-00 00:00:00.10 303030302D30302D30302030303A30303A30302E3130 0000-00-00 00:00:00.90 0000-00-00 00:00:00.90 303030302D30302D30302030303A30303A30302E3930 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 303030302D30302D30302030303A30303A30302E3939 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 303030302D30302D30302030303A30303A30302E3939 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 303030302D30302D30302030303A30303A30302E3939 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 303030302D30302D30302030303A30303A30302E3939 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 303030302D30302D30302030303A30303A30302E3939 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 303030302D30302D30302030303A30303A30312E3030 0000-00-00 00:00:01.09 0000-00-00 00:00:01.09 303030302D30302D30302030303A30303A30312E3039 0000-00-00 00:00:01.09 0000-00-00 00:00:01.09 303030302D30302D30302030303A30303A30312E3039 0000-00-00 00:00:01.10 0000-00-00 00:00:01.10 303030302D30302D30302030303A30303A30312E3130 0000-00-00 00:00:01.90 0000-00-00 00:00:01.90 303030302D30302D30302030303A30303A30312E3930 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 303030302D30302D30302030303A30303A30312E3939 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 303030302D30302D30302030303A30303A30312E3939 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 303030302D30302D30302030303A30303A30312E3939 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 303030302D30302D30302030303A30303A30312E3939 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 303030302D30302D30302030303A30303A30312E3939 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 303030302D30302D30302030303A30313A30302E3030 0000-00-00 00:01:00.09 0000-00-00 00:01:00.09 303030302D30302D30302030303A30313A30302E3039 0000-00-00 00:01:00.10 0000-00-00 00:01:00.10 303030302D30302D30302030303A30313A30302E3130 0000-00-00 00:01:00.90 0000-00-00 00:01:00.90 303030302D30302D30302030303A30313A30302E3930 0000-00-00 00:01:00.99 0000-00-00 00:01:00.99 303030302D30302D30302030303A30313A30302E3939 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 303030302D30302D30302030313A30303A30302E3030 0000-00-00 01:00:00.09 0000-00-00 01:00:00.09 303030302D30302D30302030313A30303A30302E3039 0000-00-00 01:00:00.10 0000-00-00 01:00:00.10 303030302D30302D30302030313A30303A30302E3130 0000-00-00 01:00:00.90 0000-00-00 01:00:00.90 303030302D30302D30302030313A30303A30302E3930 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 303030302D30302D30302030313A30303A30302E3939 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 303030302D30302D30302030313A30303A30302E3939 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 303030302D30302D30302030313A30303A30302E3939 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 303030302D30302D30302030313A30303A30302E3939 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 303030302D30302D30302030313A30303A30302E3939 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 313030312D30312D30312030303A30303A30302E3030 1001-01-01 00:00:00.09 1001-01-01 00:00:00.09 313030312D30312D30312030303A30303A30302E3039 1001-01-01 00:00:00.10 1001-01-01 00:00:00.10 313030312D30312D30312030303A30303A30302E3130 1001-01-01 00:00:00.90 1001-01-01 00:00:00.90 313030312D30312D30312030303A30303A30302E3930 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 313030312D30312D30312030303A30303A30302E3939 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 313030312D30312D30312030303A30303A30302E3939 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 313030312D30312D30312030303A30303A30302E3939 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 313030312D30312D30312030303A30303A30302E3939 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 313030312D30312D30312030303A30303A30302E3939 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.09 2001-01-01 23:59:58.09 323030312D30312D30312032333A35393A35382E3039 2001-01-01 23:59:58.10 2001-01-01 23:59:58.10 323030312D30312D30312032333A35393A35382E3130 2001-01-01 23:59:58.90 2001-01-01 23:59:58.90 323030312D30312D30312032333A35393A35382E3930 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:59.00 2001-01-01 23:59:59.00 323030312D30312D30312032333A35393A35392E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 393939392D31322D33312032333A35393A35382E3030 9999-12-31 23:59:58.09 9999-12-31 23:59:58.09 393939392D31322D33312032333A35393A35382E3039 9999-12-31 23:59:58.10 9999-12-31 23:59:58.10 393939392D31322D33312032333A35393A35382E3130 9999-12-31 23:59:58.90 9999-12-31 23:59:58.90 393939392D31322D33312032333A35393A35382E3930 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 393939392D31322D33312032333A35393A35382E3939 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 393939392D31322D33312032333A35393A35382E3939 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 393939392D31322D33312032333A35393A35382E3939 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 393939392D31322D33312032333A35393A35382E3939 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 393939392D31322D33312032333A35393A35382E3939 9999-12-31 23:59:59.00 9999-12-31 23:59:59.00 393939392D31322D33312032333A35393A35392E3030 SELECT a1, d1, HEX(WEIGHT_STRING(d1)) FROM t1 ORDER BY d1, a6; a1 d1 HEX(WEIGHT_STRING(d1)) 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 303030302D30302D30302030303A30303A30302E30 0000-00-00 00:00:00.1 0000-00-00 00:00:00.1 303030302D30302D30302030303A30303A30302E31 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 303030302D30302D30302030303A30303A30302E39 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 303030302D30302D30302030303A30303A30302E39 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 303030302D30302D30302030303A30303A30302E39 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 303030302D30302D30302030303A30303A30302E39 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 303030302D30302D30302030303A30303A30302E39 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 303030302D30302D30302030303A30303A30302E39 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 303030302D30302D30302030303A30303A30312E30 0000-00-00 00:00:01.1 0000-00-00 00:00:01.1 303030302D30302D30302030303A30303A30312E31 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 303030302D30302D30302030303A30303A30312E39 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 303030302D30302D30302030303A30303A30312E39 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 303030302D30302D30302030303A30303A30312E39 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 303030302D30302D30302030303A30303A30312E39 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 303030302D30302D30302030303A30303A30312E39 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 303030302D30302D30302030303A30303A30312E39 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 303030302D30302D30302030303A30313A30302E30 0000-00-00 00:01:00.1 0000-00-00 00:01:00.1 303030302D30302D30302030303A30313A30302E31 0000-00-00 00:01:00.9 0000-00-00 00:01:00.9 303030302D30302D30302030303A30313A30302E39 0000-00-00 00:01:00.9 0000-00-00 00:01:00.9 303030302D30302D30302030303A30313A30302E39 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 303030302D30302D30302030313A30303A30302E30 0000-00-00 01:00:00.1 0000-00-00 01:00:00.1 303030302D30302D30302030313A30303A30302E31 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 303030302D30302D30302030313A30303A30302E39 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 303030302D30302D30302030313A30303A30302E39 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 303030302D30302D30302030313A30303A30302E39 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 303030302D30302D30302030313A30303A30302E39 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 303030302D30302D30302030313A30303A30302E39 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 303030302D30302D30302030313A30303A30302E39 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 313030312D30312D30312030303A30303A30302E30 1001-01-01 00:00:00.1 1001-01-01 00:00:00.1 313030312D30312D30312030303A30303A30302E31 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 313030312D30312D30312030303A30303A30302E39 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 313030312D30312D30312030303A30303A30302E39 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 313030312D30312D30312030303A30303A30302E39 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 313030312D30312D30312030303A30303A30302E39 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 313030312D30312D30312030303A30303A30302E39 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 313030312D30312D30312030303A30303A30302E39 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.1 2001-01-01 23:59:58.1 323030312D30312D30312032333A35393A35382E31 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:59.0 2001-01-01 23:59:59.0 323030312D30312D30312032333A35393A35392E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 393939392D31322D33312032333A35393A35382E30 9999-12-31 23:59:58.1 9999-12-31 23:59:58.1 393939392D31322D33312032333A35393A35382E31 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 393939392D31322D33312032333A35393A35382E39 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 393939392D31322D33312032333A35393A35382E39 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 393939392D31322D33312032333A35393A35382E39 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 393939392D31322D33312032333A35393A35382E39 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 393939392D31322D33312032333A35393A35382E39 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 393939392D31322D33312032333A35393A35382E39 9999-12-31 23:59:59.0 9999-12-31 23:59:59.0 393939392D31322D33312032333A35393A35392E30 SELECT a0, d0, HEX(WEIGHT_STRING(d0)) FROM t1 ORDER BY d0, a6; a0 d0 HEX(WEIGHT_STRING(d0)) 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:00. 0000-00-00 00:00:00 303030302D30302D30302030303A30303A3030 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:00:01. 0000-00-00 00:00:01 303030302D30302D30302030303A30303A3031 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 00:01:00. 0000-00-00 00:01:00 303030302D30302D30302030303A30313A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 0000-00-00 01:00:00. 0000-00-00 01:00:00 303030302D30302D30302030313A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 1001-01-01 00:00:00. 1001-01-01 00:00:00 313030312D30312D30312030303A30303A3030 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:59. 2001-01-01 23:59:59 323030312D30312D30312032333A35393A3539 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:58. 9999-12-31 23:59:58 393939392D31322D33312032333A35393A3538 9999-12-31 23:59:59. 9999-12-31 23:59:59 393939392D31322D33312032333A35393A3539 CREATE VIEW v1 AS SELECT a6, d0, d1, d2, d3, d4, d5, d6, HEX(WEIGHT_STRING(d0)) as wst0, HEX(WEIGHT_STRING(d1)) as wst1, HEX(WEIGHT_STRING(d2)) as wst2, HEX(WEIGHT_STRING(d3)) as wst3, HEX(WEIGHT_STRING(d4)) as wst4, HEX(WEIGHT_STRING(d5)) as wst5, HEX(WEIGHT_STRING(d6)) as wst6 FROM t1; SELECT * FROM v1 WHERE a6 LIKE '%.999999' ORDER BY a6, d6;; a6 0000-00-00 00:00:00.999999 d0 0000-00-00 00:00:00 d1 0000-00-00 00:00:00.9 d2 0000-00-00 00:00:00.99 d3 0000-00-00 00:00:00.999 d4 0000-00-00 00:00:00.9999 d5 0000-00-00 00:00:00.99999 d6 0000-00-00 00:00:00.999999 wst0 303030302D30302D30302030303A30303A3030 wst1 303030302D30302D30302030303A30303A30302E39 wst2 303030302D30302D30302030303A30303A30302E3939 wst3 303030302D30302D30302030303A30303A30302E393939 wst4 303030302D30302D30302030303A30303A30302E39393939 wst5 303030302D30302D30302030303A30303A30302E3939393939 wst6 303030302D30302D30302030303A30303A30302E393939393939 a6 0000-00-00 00:00:01.999999 d0 0000-00-00 00:00:01 d1 0000-00-00 00:00:01.9 d2 0000-00-00 00:00:01.99 d3 0000-00-00 00:00:01.999 d4 0000-00-00 00:00:01.9999 d5 0000-00-00 00:00:01.99999 d6 0000-00-00 00:00:01.999999 wst0 303030302D30302D30302030303A30303A3031 wst1 303030302D30302D30302030303A30303A30312E39 wst2 303030302D30302D30302030303A30303A30312E3939 wst3 303030302D30302D30302030303A30303A30312E393939 wst4 303030302D30302D30302030303A30303A30312E39393939 wst5 303030302D30302D30302030303A30303A30312E3939393939 wst6 303030302D30302D30302030303A30303A30312E393939393939 a6 0000-00-00 00:01:00.999999 d0 0000-00-00 00:01:00 d1 0000-00-00 00:01:00.9 d2 0000-00-00 00:01:00.99 d3 0000-00-00 00:01:00.999 d4 0000-00-00 00:01:00.9999 d5 0000-00-00 00:01:00.99999 d6 0000-00-00 00:01:00.999999 wst0 303030302D30302D30302030303A30313A3030 wst1 303030302D30302D30302030303A30313A30302E39 wst2 303030302D30302D30302030303A30313A30302E3939 wst3 303030302D30302D30302030303A30313A30302E393939 wst4 303030302D30302D30302030303A30313A30302E39393939 wst5 303030302D30302D30302030303A30313A30302E3939393939 wst6 303030302D30302D30302030303A30313A30302E393939393939 a6 0000-00-00 01:00:00.999999 d0 0000-00-00 01:00:00 d1 0000-00-00 01:00:00.9 d2 0000-00-00 01:00:00.99 d3 0000-00-00 01:00:00.999 d4 0000-00-00 01:00:00.9999 d5 0000-00-00 01:00:00.99999 d6 0000-00-00 01:00:00.999999 wst0 303030302D30302D30302030313A30303A3030 wst1 303030302D30302D30302030313A30303A30302E39 wst2 303030302D30302D30302030313A30303A30302E3939 wst3 303030302D30302D30302030313A30303A30302E393939 wst4 303030302D30302D30302030313A30303A30302E39393939 wst5 303030302D30302D30302030313A30303A30302E3939393939 wst6 303030302D30302D30302030313A30303A30302E393939393939 a6 1001-01-01 00:00:00.999999 d0 1001-01-01 00:00:00 d1 1001-01-01 00:00:00.9 d2 1001-01-01 00:00:00.99 d3 1001-01-01 00:00:00.999 d4 1001-01-01 00:00:00.9999 d5 1001-01-01 00:00:00.99999 d6 1001-01-01 00:00:00.999999 wst0 313030312D30312D30312030303A30303A3030 wst1 313030312D30312D30312030303A30303A30302E39 wst2 313030312D30312D30312030303A30303A30302E3939 wst3 313030312D30312D30312030303A30303A30302E393939 wst4 313030312D30312D30312030303A30303A30302E39393939 wst5 313030312D30312D30312030303A30303A30302E3939393939 wst6 313030312D30312D30312030303A30303A30302E393939393939 a6 2001-01-01 23:59:58.999999 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.9 d2 2001-01-01 23:59:58.99 d3 2001-01-01 23:59:58.999 d4 2001-01-01 23:59:58.9999 d5 2001-01-01 23:59:58.99999 d6 2001-01-01 23:59:58.999999 wst0 323030312D30312D30312032333A35393A3538 wst1 323030312D30312D30312032333A35393A35382E39 wst2 323030312D30312D30312032333A35393A35382E3939 wst3 323030312D30312D30312032333A35393A35382E393939 wst4 323030312D30312D30312032333A35393A35382E39393939 wst5 323030312D30312D30312032333A35393A35382E3939393939 wst6 323030312D30312D30312032333A35393A35382E393939393939 a6 9999-12-31 23:59:58.999999 d0 9999-12-31 23:59:58 d1 9999-12-31 23:59:58.9 d2 9999-12-31 23:59:58.99 d3 9999-12-31 23:59:58.999 d4 9999-12-31 23:59:58.9999 d5 9999-12-31 23:59:58.99999 d6 9999-12-31 23:59:58.999999 wst0 393939392D31322D33312032333A35393A3538 wst1 393939392D31322D33312032333A35393A35382E39 wst2 393939392D31322D33312032333A35393A35382E3939 wst3 393939392D31322D33312032333A35393A35382E393939 wst4 393939392D31322D33312032333A35393A35382E39393939 wst5 393939392D31322D33312032333A35393A35382E3939393939 wst6 393939392D31322D33312032333A35393A35382E393939393939 SELECT * FROM v1 WHERE a6 LIKE '%.000000' ORDER BY a6, d6;; a6 0000-00-00 00:00:00.000000 d0 0000-00-00 00:00:00 d1 0000-00-00 00:00:00.0 d2 0000-00-00 00:00:00.00 d3 0000-00-00 00:00:00.000 d4 0000-00-00 00:00:00.0000 d5 0000-00-00 00:00:00.00000 d6 0000-00-00 00:00:00.000000 wst0 303030302D30302D30302030303A30303A3030 wst1 303030302D30302D30302030303A30303A30302E30 wst2 303030302D30302D30302030303A30303A30302E3030 wst3 303030302D30302D30302030303A30303A30302E303030 wst4 303030302D30302D30302030303A30303A30302E30303030 wst5 303030302D30302D30302030303A30303A30302E3030303030 wst6 303030302D30302D30302030303A30303A30302E303030303030 a6 0000-00-00 00:00:01.000000 d0 0000-00-00 00:00:01 d1 0000-00-00 00:00:01.0 d2 0000-00-00 00:00:01.00 d3 0000-00-00 00:00:01.000 d4 0000-00-00 00:00:01.0000 d5 0000-00-00 00:00:01.00000 d6 0000-00-00 00:00:01.000000 wst0 303030302D30302D30302030303A30303A3031 wst1 303030302D30302D30302030303A30303A30312E30 wst2 303030302D30302D30302030303A30303A30312E3030 wst3 303030302D30302D30302030303A30303A30312E303030 wst4 303030302D30302D30302030303A30303A30312E30303030 wst5 303030302D30302D30302030303A30303A30312E3030303030 wst6 303030302D30302D30302030303A30303A30312E303030303030 a6 2001-01-01 23:59:59.000000 d0 2001-01-01 23:59:59 d1 2001-01-01 23:59:59.0 d2 2001-01-01 23:59:59.00 d3 2001-01-01 23:59:59.000 d4 2001-01-01 23:59:59.0000 d5 2001-01-01 23:59:59.00000 d6 2001-01-01 23:59:59.000000 wst0 323030312D30312D30312032333A35393A3539 wst1 323030312D30312D30312032333A35393A35392E30 wst2 323030312D30312D30312032333A35393A35392E3030 wst3 323030312D30312D30312032333A35393A35392E303030 wst4 323030312D30312D30312032333A35393A35392E30303030 wst5 323030312D30312D30312032333A35393A35392E3030303030 wst6 323030312D30312D30312032333A35393A35392E303030303030 a6 9999-12-31 23:59:59.000000 d0 9999-12-31 23:59:59 d1 9999-12-31 23:59:59.0 d2 9999-12-31 23:59:59.00 d3 9999-12-31 23:59:59.000 d4 9999-12-31 23:59:59.0000 d5 9999-12-31 23:59:59.00000 d6 9999-12-31 23:59:59.000000 wst0 393939392D31322D33312032333A35393A3539 wst1 393939392D31322D33312032333A35393A35392E30 wst2 393939392D31322D33312032333A35393A35392E3030 wst3 393939392D31322D33312032333A35393A35392E303030 wst4 393939392D31322D33312032333A35393A35392E30303030 wst5 393939392D31322D33312032333A35393A35392E3030303030 wst6 393939392D31322D33312032333A35393A35392E303030303030 SELECT * FROM v1 WHERE a6 LIKE '%.100000' ORDER BY a6, d6;; a6 0000-00-00 00:00:00.100000 d0 0000-00-00 00:00:00 d1 0000-00-00 00:00:00.1 d2 0000-00-00 00:00:00.10 d3 0000-00-00 00:00:00.100 d4 0000-00-00 00:00:00.1000 d5 0000-00-00 00:00:00.10000 d6 0000-00-00 00:00:00.100000 wst0 303030302D30302D30302030303A30303A3030 wst1 303030302D30302D30302030303A30303A30302E31 wst2 303030302D30302D30302030303A30303A30302E3130 wst3 303030302D30302D30302030303A30303A30302E313030 wst4 303030302D30302D30302030303A30303A30302E31303030 wst5 303030302D30302D30302030303A30303A30302E3130303030 wst6 303030302D30302D30302030303A30303A30302E313030303030 a6 0000-00-00 00:00:01.100000 d0 0000-00-00 00:00:01 d1 0000-00-00 00:00:01.1 d2 0000-00-00 00:00:01.10 d3 0000-00-00 00:00:01.100 d4 0000-00-00 00:00:01.1000 d5 0000-00-00 00:00:01.10000 d6 0000-00-00 00:00:01.100000 wst0 303030302D30302D30302030303A30303A3031 wst1 303030302D30302D30302030303A30303A30312E31 wst2 303030302D30302D30302030303A30303A30312E3130 wst3 303030302D30302D30302030303A30303A30312E313030 wst4 303030302D30302D30302030303A30303A30312E31303030 wst5 303030302D30302D30302030303A30303A30312E3130303030 wst6 303030302D30302D30302030303A30303A30312E313030303030 a6 0000-00-00 00:01:00.100000 d0 0000-00-00 00:01:00 d1 0000-00-00 00:01:00.1 d2 0000-00-00 00:01:00.10 d3 0000-00-00 00:01:00.100 d4 0000-00-00 00:01:00.1000 d5 0000-00-00 00:01:00.10000 d6 0000-00-00 00:01:00.100000 wst0 303030302D30302D30302030303A30313A3030 wst1 303030302D30302D30302030303A30313A30302E31 wst2 303030302D30302D30302030303A30313A30302E3130 wst3 303030302D30302D30302030303A30313A30302E313030 wst4 303030302D30302D30302030303A30313A30302E31303030 wst5 303030302D30302D30302030303A30313A30302E3130303030 wst6 303030302D30302D30302030303A30313A30302E313030303030 a6 0000-00-00 01:00:00.100000 d0 0000-00-00 01:00:00 d1 0000-00-00 01:00:00.1 d2 0000-00-00 01:00:00.10 d3 0000-00-00 01:00:00.100 d4 0000-00-00 01:00:00.1000 d5 0000-00-00 01:00:00.10000 d6 0000-00-00 01:00:00.100000 wst0 303030302D30302D30302030313A30303A3030 wst1 303030302D30302D30302030313A30303A30302E31 wst2 303030302D30302D30302030313A30303A30302E3130 wst3 303030302D30302D30302030313A30303A30302E313030 wst4 303030302D30302D30302030313A30303A30302E31303030 wst5 303030302D30302D30302030313A30303A30302E3130303030 wst6 303030302D30302D30302030313A30303A30302E313030303030 a6 1001-01-01 00:00:00.100000 d0 1001-01-01 00:00:00 d1 1001-01-01 00:00:00.1 d2 1001-01-01 00:00:00.10 d3 1001-01-01 00:00:00.100 d4 1001-01-01 00:00:00.1000 d5 1001-01-01 00:00:00.10000 d6 1001-01-01 00:00:00.100000 wst0 313030312D30312D30312030303A30303A3030 wst1 313030312D30312D30312030303A30303A30302E31 wst2 313030312D30312D30312030303A30303A30302E3130 wst3 313030312D30312D30312030303A30303A30302E313030 wst4 313030312D30312D30312030303A30303A30302E31303030 wst5 313030312D30312D30312030303A30303A30302E3130303030 wst6 313030312D30312D30312030303A30303A30302E313030303030 a6 2001-01-01 23:59:58.100000 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.1 d2 2001-01-01 23:59:58.10 d3 2001-01-01 23:59:58.100 d4 2001-01-01 23:59:58.1000 d5 2001-01-01 23:59:58.10000 d6 2001-01-01 23:59:58.100000 wst0 323030312D30312D30312032333A35393A3538 wst1 323030312D30312D30312032333A35393A35382E31 wst2 323030312D30312D30312032333A35393A35382E3130 wst3 323030312D30312D30312032333A35393A35382E313030 wst4 323030312D30312D30312032333A35393A35382E31303030 wst5 323030312D30312D30312032333A35393A35382E3130303030 wst6 323030312D30312D30312032333A35393A35382E313030303030 a6 9999-12-31 23:59:58.100000 d0 9999-12-31 23:59:58 d1 9999-12-31 23:59:58.1 d2 9999-12-31 23:59:58.10 d3 9999-12-31 23:59:58.100 d4 9999-12-31 23:59:58.1000 d5 9999-12-31 23:59:58.10000 d6 9999-12-31 23:59:58.100000 wst0 393939392D31322D33312032333A35393A3538 wst1 393939392D31322D33312032333A35393A35382E31 wst2 393939392D31322D33312032333A35393A35382E3130 wst3 393939392D31322D33312032333A35393A35382E313030 wst4 393939392D31322D33312032333A35393A35382E31303030 wst5 393939392D31322D33312032333A35393A35382E3130303030 wst6 393939392D31322D33312032333A35393A35382E313030303030 DROP VIEW v1; DROP TABLE t1; # # Testing bad FSPs # CREATE TABLE t1 (a DATETIME(-1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1))' at line 1 CREATE TABLE t1 (a DATETIME(7)); ERROR 42000: Too big precision 7 specified for 'a'. Maximum is 6. CREATE TABLE t1 (a DATETIME(31)); ERROR 42000: Too big precision 31 specified for 'a'. Maximum is 6. # # Testing bad FSPs with DATETIME functions # SELECT SYSDATE(-1); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1)' at line 1 SELECT SYSDATE(7); ERROR 42000: Too big precision 7 specified for 'sysdate'. Maximum is 6. SELECT SYSDATE(31); ERROR 42000: Too big precision 31 specified for 'sysdate'. Maximum is 6. SELECT NOW(-1); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1)' at line 1 SELECT NOW(7); ERROR 42000: Too big precision 7 specified for 'now'. Maximum is 6. SELECT NOW(31); ERROR 42000: Too big precision 31 specified for 'now'. Maximum is 6. # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # CREATE TABLE t1 (a DATETIME(6) NOT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.999999'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.456'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45678'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567891'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('9999-12-31 23:59:59.000000'); SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 23:59:59.999999 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 9999-12-31 23:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 9999-12-31 23:59:59.000000 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 23:59:59.999999 0000-00-00 00:00:00.000000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45'; a 2000-01-01 01:02:03.450000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.4567'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45670'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 ORDER BY a; a 0000-00-00 00:00:00.000000 0000-00-00 23:59:59.999999 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 9999-12-31 23:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 9999-12-31 23:59:59.000000 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 23:59:59.999999 0000-00-00 00:00:00.000000 EXPLAIN SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 8 const 1 Using index SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2000-01-01 01:02:03.456' AND TIMESTAMP'2000-01-01 01:02:03.45678'; a 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 DROP TABLE t1; # # Tesint range: stored_field_cmp_to_item # CREATE TABLE t1 (a datetime(6), key(a)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'), ('2000-01-01 00:00:00'), ('2000-01-01 00:00:01'), ('2000-01-01 00:00:01'); SELECT * FROM t1 WHERE a >= 20000101000000; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 SELECT * FROM t1 WHERE a >= 20000101000000.0; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 UPDATE t1 SET a=ADDTIME(a, 0.000001); SELECT * FROM t1; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 SELECT * FROM t1 WHERE a >= 20000101000000.000001; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 DROP TABLE t1; # # Rare DATETIME formats # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (101.101); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (990101.102); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('990101.103'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (131.104); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('000131.105'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 2000-01-01 00:00:00.101000 1999-01-01 00:00:00.102000 0000-00-00 00:00:00.000000 2000-01-31 00:00:00.104000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00.123456 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-00-00 00:00:00'); INSERT INTO t1 VALUES ('-0000-00-00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-0000-00-00 00:00:00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-0000-00-00 00:00:00.000000'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 1999-01-01 00:00:00.123456 1999-01-01 00:00:00.000000 1999-01-01 00:00:00.000000 1999-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing huge values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing values with zeros in dates # SET sql_mode=no_zero_in_date; CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('1999-00-00 00:00:00', '1999-00-00 00:00:00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 Warning 1265 Data truncated for column 'b' at row 1 SELECT * FROM t1; a b 0000-00-00 00:00:00 0000-00-00 00:00:00.000000 DROP TABLE t1; SET sql_mode=default; # # Testing bad values with TRADITIONAL mode # SET sql_mode=traditional; CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('xxx', NULL); ERROR 22007: Incorrect datetime value: 'xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL,'xxx'); ERROR 22007: Incorrect datetime value: 'xxx' for column 'b' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00 xxx', NULL); ERROR 22007: Incorrect datetime value: '1999-01-01 00:00:00 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-00-00 00:00:00 xxx', NULL); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL, '1999-00-00 00:00:00 xxx'); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00 xxx' for column 'b' at row 1 INSERT INTO t1 VALUES ('1999-00-00 xxx', NULL); ERROR 22007: Incorrect datetime value: '1999-00-00 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL, '1999-00-00 xxx'); ERROR 22007: Incorrect datetime value: '1999-00-00 xxx' for column 'b' at row 1 INSERT INTO t1 VALUES ('1999-00-00 00:00:00', NULL); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL, '1999-00-00 00:00:00'); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, TIMESTAMP('0000-00-00 10:00:00')); ERROR 22007: Incorrect datetime value: '0000-00-00 10:00:00' INSERT INTO t1 VALUES (NULL, 199991231000000); ERROR 22007: Incorrect datetime value: '199991231000000' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -0.1); ERROR 22007: Incorrect datetime value: '-0.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.0); ERROR 22007: Incorrect datetime value: '-1.0' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.1); ERROR 22007: Incorrect datetime value: '-1.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -0.1e0); ERROR 22007: Incorrect datetime value: '-0.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.0e0); ERROR 22007: Incorrect datetime value: '-1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.1e0); ERROR 22007: Incorrect datetime value: '-1.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, CAST(0xFFFFFFFF00000000 AS SIGNED)); ERROR 22007: Incorrect datetime value: '-4294967296' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, CAST(0xFFFFFFFF00000000 AS UNSIGNED)); ERROR 22007: Incorrect datetime value: '18446744069414584320' for column 'b' at row 1 SELECT * FROM t1; a b DROP TABLE t1; SET sql_mode=default; # # Testing rounding # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (20010101100000.1234567); INSERT INTO t1 VALUES (20010228235959.9999997); INSERT INTO t1 VALUES (99990228235959.9999997); INSERT INTO t1 VALUES (99991231235959.9999997); INSERT INTO t1 VALUES ('2001-01-01 10:00:00.1234567'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('2001-02-28 23:59:59.9999997'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('9999-02-28 23:59:59.9999997'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('9999-12-31 23:59:59.9999997'); Warnings: Note 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 2001-01-01 10:00:00.123456 2001-02-28 23:59:59.999999 9999-02-28 23:59:59.999999 9999-12-31 23:59:59.999999 2001-01-01 10:00:00.123456 2001-02-28 23:59:59.999999 9999-02-28 23:59:59.999999 9999-12-31 23:59:59.999999 DROP TABLE t1; # # Testing rounding when altering DATETIME(N) to a smaller size # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a DATETIME(5); SELECT * FROM t1; a 2001-01-01 10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME; Warnings: Note 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 10:10:10 DROP TABLE t1; # # Testing rounding from VARCHAR and DATETIME(6) to DATETIME(N) # CREATE TABLE t1 (a VARCHAR(32), t6 DATETIME(6), t5 DATETIME(5), t4 DATETIME(4), t3 DATETIME(3), t2 DATETIME(2), t1 DATETIME(1), t0 DATETIME); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999949'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999499'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.994999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.949999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 ALTER TABLE t1 MODIFY a DATETIME(6); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing rounding from DATETIME(N) to BIGINT # CREATE TABLE t1 (a BIGINT, b DATETIME(6)); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:59.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET a=b; SELECT * FROM t1; a b 20010101101059 2001-01-01 10:10:59.500000 20010101101010 2001-01-01 10:10:10.500000 20010101101010 2001-01-01 10:10:10.499999 DROP TABLE t1; # # Testing rounding from TIME(6) to DATETIME(N) # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME(6), t6 DATETIME(6), t5 DATETIME(5), t4 DATETIME(4), t3 DATETIME(3), t2 DATETIME(2), t1 DATETIME(1), t0 DATETIME); INSERT INTO t1 (a) VALUES ('10:10:10.999999'); INSERT INTO t1 (a) VALUES ('10:10:10.999994'); INSERT INTO t1 (a) VALUES ('10:10:10.999949'); INSERT INTO t1 (a) VALUES ('10:10:10.999499'); INSERT INTO t1 (a) VALUES ('10:10:10.994999'); INSERT INTO t1 (a) VALUES ('10:10:10.949999'); INSERT INTO t1 (a) VALUES ('10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 DROP TABLE t1; SET timestamp=default; # # Testing rounding from DECIMAL to DATETIME(N) # CREATE TABLE t1 (a DECIMAL(30,6), t6 DATETIME(6), t5 DATETIME(5), t4 DATETIME(4), t3 DATETIME(3), t2 DATETIME(2), t1 DATETIME(1), t0 DATETIME); INSERT INTO t1 (a) VALUES (20010101101010.999999); INSERT INTO t1 (a) VALUES (20010101101010.999994); INSERT INTO t1 (a) VALUES (20010101101010.999949); INSERT INTO t1 (a) VALUES (20010101101010.999499); INSERT INTO t1 (a) VALUES (20010101101010.994999); INSERT INTO t1 (a) VALUES (20010101101010.949999); INSERT INTO t1 (a) VALUES (20010101101010.499999); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 20010101101010.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing truncation warnings # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.111111 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111110'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111111'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111114'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111115'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111119'); Warnings: Note 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110); INSERT INTO t1 VALUES (0.1111111); INSERT INTO t1 VALUES (0.1111114); INSERT INTO t1 VALUES (0.1111115); INSERT INTO t1 VALUES (0.1111119); SELECT * FROM t1; a 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110e0); INSERT INTO t1 VALUES (0.1111111e0); INSERT INTO t1 VALUES (0.1111114e0); INSERT INTO t1 VALUES (0.1111115e0); INSERT INTO t1 VALUES (0.1111119e0); SELECT * FROM t1; a 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 DROP TABLE t1; # # Testing implicit CAST from TIME to DATETIME # SET @@timestamp=UNIX_TIMESTAMP('2008-01-03 10:20:30.1'); CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (CURRENT_TIME), (CURRENT_TIME(6)); INSERT INTO t1 VALUES (TIME'08:00:00.123456'), (TIME'240:00:00.000001'); INSERT INTO t1 VALUES (TIME'-10:00:00.000001'), (TIME'-240:00:00.000001'); SELECT * FROM t1; a 2008-01-03 10:20:30.000000 2008-01-03 10:20:30.100000 2008-01-03 08:00:00.123456 2008-01-13 00:00:00.000001 2008-01-02 13:59:59.999999 2007-12-23 23:59:59.999999 DROP TABLE t1; SET @@timestamp=default; # # Testing IN # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000002'); SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001', '2000-01-01 23:00:00.000002'); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000001 # # Testing Item_temporal_with_ref::print # EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN (0.000001,0); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 11 100.00 Using where Warnings: Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` in (0.000001,0)) # # Testing IN with index: involves field->store_packed() # ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001','2000-01-01 23:00:00.000002'); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000001 DROP TABLE t1; # # Testing CREATE TABLE LIKE # CREATE TABLE t1 (a DATETIME(6)); CREATE TABLE t2 LIKE t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2, t1; # # Testing CREATE TABLE .. SELECT # CREATE TABLE t1 (a DATETIME(6)); CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2, t1; # # Testing JOIN between DATETIME(6) and DATETIME(6) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123456'); CREATE TABLE t2 (a DATETIME(6)); INSERT INTO t2 SELECT * FROM t1; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN between DATETIME and DATETIME(6) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.999999'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.000000'); CREATE TABLE t2 (a DATETIME); INSERT INTO t2 VALUES ('2000-01-01 10:11:12'); INSERT INTO t2 VALUES ('2000-01-01 10:11:13'); INSERT INTO t2 VALUES ('0000-00-00 23:59:59'); INSERT INTO t2 VALUES ('2000-01-01 23:59:59'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 23:59:59.000000 0000-00-00 23:59:59 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 ALTER TABLE t1 ADD KEY(a); ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 23:59:59.000000 0000-00-00 23:59:59 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 DROP TABLE t2, t1; # # Testing unique index # CREATE TABLE t1 (a DATETIME(6), UNIQUE(a)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); ERROR 23000: Duplicate entry '2000-01-01 00:01:02.123450' for key 'a' DROP TABLE t1; # # Testing GROUP BY # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.0'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.01'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.010'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.020'); SELECT a, COUNT(*) FROM t1 GROUP BY a; a COUNT(*) 2000-01-01 00:01:02.000000 2 2000-01-01 00:01:02.010000 2 2000-01-01 00:01:02.020000 2 DROP TABLE t1; # # Testing MIN() and MAX() # CREATE TABLE t1 (a INT, b DATETIME(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02.000001'); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02.000001'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02.000001'); SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) 2001-01-01 00:01:02.000000 2001-01-01 10:11:02.000001 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 2001-01-01 00:01:02.000000 2001-01-01 00:01:02.000001 2 2001-01-01 10:01:02.000000 2001-01-01 10:01:02.000001 3 2001-01-01 10:11:02.000000 2001-01-01 10:11:02.000001 DROP TABLE t1; # # Testing MIN(DATETIME) and MAX(DATETIME) in arithmetic expressions and CAST # This covers Item_sum_hybrid::val_int(), val_real(), val_decimal() # CREATE TABLE t1 ( t0 DATETIME, t1 DATETIME(1), t2 DATETIME(2), t3 DATETIME(3), t4 DATETIME(4), t5 DATETIME(5), t6 DATETIME(6) ); INSERT INTO t1 VALUES ( '2001-01-01 10:10:10', '2001-01-01 10:10:10.9', '2001-01-01 10:10:10.99', '2001-01-01 10:10:10.999', '2001-01-01 10:10:10.9999', '2001-01-01 10:10:10.99999', '2001-01-01 10:10:10.999999' ); CREATE TABLE t2 AS SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1 bigint(21) YES NULL MAX(t1) + 1 decimal(22,1) YES NULL MAX(t2) + 1 decimal(23,2) YES NULL MAX(t3) + 1 decimal(24,3) YES NULL MAX(t4) + 1 decimal(25,4) YES NULL MAX(t5) + 1 decimal(26,5) YES NULL MAX(t6) + 1 decimal(27,6) YES NULL SELECT * FROM t2; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 20010101101011 20010101101011.9 20010101101011.99 20010101101011.999 20010101101011.9999 20010101101011.99999 20010101101011.999999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.1, MAX(t1) + 1.1, MAX(t2) + 1.1, MAX(t3) + 1.1, MAX(t4) + 1.1, MAX(t5) + 1.1, MAX(t6) + 1.1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.1 decimal(21,1) YES NULL MAX(t1) + 1.1 decimal(22,1) YES NULL MAX(t2) + 1.1 decimal(23,2) YES NULL MAX(t3) + 1.1 decimal(24,3) YES NULL MAX(t4) + 1.1 decimal(25,4) YES NULL MAX(t5) + 1.1 decimal(26,5) YES NULL MAX(t6) + 1.1 decimal(27,6) YES NULL SELECT * FROM t2; MAX(t0) + 1.1 MAX(t1) + 1.1 MAX(t2) + 1.1 MAX(t3) + 1.1 MAX(t4) + 1.1 MAX(t5) + 1.1 MAX(t6) + 1.1 20010101101011.1 20010101101012.0 20010101101012.09 20010101101012.099 20010101101012.0999 20010101101012.09999 20010101101012.099999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.0e0, MAX(t1) + 1.0e0, MAX(t2) + 1.0e0, MAX(t3) + 1.0e0, MAX(t4) + 1.0e0, MAX(t5) + 1.0e0, MAX(t6) + 1.0e0 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.0e0 double YES NULL MAX(t1) + 1.0e0 double YES NULL MAX(t2) + 1.0e0 double YES NULL MAX(t3) + 1.0e0 double YES NULL MAX(t4) + 1.0e0 double YES NULL MAX(t5) + 1.0e0 double YES NULL MAX(t6) + 1.0e0 double YES NULL DROP TABLE t2; SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 20010101101011 20010101101011.9 20010101101011.99 20010101101011.999 20010101101011.9999 20010101101011.99999 20010101101011.999999 SELECT CAST(MAX(t0) AS SIGNED), CAST(MAX(t1) AS SIGNED), CAST(MAX(t2) AS SIGNED), CAST(MAX(t3) AS SIGNED), CAST(MAX(t4) AS SIGNED), CAST(MAX(t5) AS SIGNED), CAST(MAX(t6) AS SIGNED) FROM t1; CAST(MAX(t0) AS SIGNED) CAST(MAX(t1) AS SIGNED) CAST(MAX(t2) AS SIGNED) CAST(MAX(t3) AS SIGNED) CAST(MAX(t4) AS SIGNED) CAST(MAX(t5) AS SIGNED) CAST(MAX(t6) AS SIGNED) 20010101101010 20010101101010 20010101101010 20010101101010 20010101101010 20010101101010 20010101101010 DROP TABLE t1; # # Testing LEAST # SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2'); LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') 2001-01-01 00:00:00.1 SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1; LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1 20010101000001.1 SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1.0; LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1.0 20010101000001.1 SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1e0; LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1e0 20010101000001.1 SELECT LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS a; a 2001-01-01 00:00:00.100000 SELECT LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') + 0 AS a; a 20010101000000.100000 SELECT CAST(LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS SIGNED) AS a; a 20010101000000 SELECT CAST(LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a; a 20010101000000.100000 SELECT GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS a; a 2001-01-02 00:00:00.100000 SELECT GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') + 0 AS a; a 20010102000000.100000 SELECT CAST(GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS SIGNED) AS a; a 20010102000000 SELECT CAST(GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a; a 20010102000000.100000 CREATE TABLE t1 AS SELECT LEAST(CAST('2001-01-01 00:00:00' AS DATETIME(1)), CAST('2001-01-01 00:00:00' AS DATETIME(2))) AS l, GREATEST(CAST('2001-01-01 00:00:00' AS DATETIME(1)), CAST('2001-01-01 00:00:00' AS DATETIME(2))) AS g; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `l` datetime(2) DEFAULT NULL, `g` datetime(2) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing INSERT, MAX and MIN values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('9999-12-31 23:59:59'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.1'); INSERT INTO t1 VALUES ('9999-12-31 24:00:00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 9999-12-31 23:59:59.000000 9999-12-31 23:59:59.100000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing integer INSERT values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (19990102); INSERT INTO t1 VALUES (19990102112233); INSERT INTO t1 VALUES (100000101112233); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0); INSERT INTO t1 VALUES (-1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 1999-01-02 00:00:00.000000 1999-01-02 11:22:33.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing decimal INSERT values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (20010101223344.4); INSERT INTO t1 VALUES (20010101223344.45); INSERT INTO t1 VALUES (20010101223344.456); INSERT INTO t1 VALUES (20010101223344.4567); INSERT INTO t1 VALUES (20010101223344.45678); INSERT INTO t1 VALUES (20010101223344.456789); INSERT INTO t1 VALUES (2001010120203.4567894); INSERT INTO t1 VALUES (2001010120203.4567895); INSERT INTO t1 VALUES (2001010120203.4567896); INSERT INTO t1 VALUES (2001010120203.456789678); INSERT INTO t1 VALUES (200101018385959.000000); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-200101018385959.000000); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 2001-01-01 22:33:44.400000 2001-01-01 22:33:44.450000 2001-01-01 22:33:44.456000 2001-01-01 22:33:44.456700 2001-01-01 22:33:44.456780 2001-01-01 22:33:44.456789 0200-10-10 12:02:03.456789 0200-10-10 12:02:03.456789 0200-10-10 12:02:03.456789 0200-10-10 12:02:03.456789 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing double INSERT values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (112.233e-3); INSERT INTO t1 VALUES (112.223e-2); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e-1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e0); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e1); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e2); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e3); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e4); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-123.456e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.112233 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-12 00:00:00.233000 2000-11-22 00:00:00.329999 2001-12-23 00:00:00.299999 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing UPDATE between DATETIME(6) and DATETIME/BIGINT/DECIMAL/DOUBLE # CREATE TABLE t1 (t0 DATETIME, t6 DATETIME(6), i BIGINT, d DECIMAL(20,6), f DOUBLE); INSERT INTO t1 (t0) VALUES ('0000-00-00 11:22:33'); UPDATE t1 SET t6=t0, i=t0, d=t0, f=t0; SELECT * FROM t1; t0 t6 i d f 0000-00-00 11:22:33 0000-00-00 11:22:33.000000 112233 112233.000000 112233 UPDATE t1 SET t6='0000-00-00 11:22:33.1'; UPDATE t1 SET t0=t6, i=t6, d=t6, f=t6; SELECT * FROM t1; t0 t6 i d f 0000-00-00 11:22:33 0000-00-00 11:22:33.100000 112233 112233.100000 112233.1 UPDATE t1 SET i=20000101112233, d=20001010112233.1, f=00001010112233.1; UPDATE t1 SET t6=i; SELECT t6 FROM t1; t6 2000-01-01 11:22:33.000000 UPDATE t1 SET t6=d; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 UPDATE t1 SET t6=f; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 DROP TABLE t1; # # Testing JOIN with comparison between DATETIME(6) and DATE # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-02 00:00:00.000000'); CREATE TABLE t2 (a DATE); INSERT INTO t2 VALUES ('2000-01-01'); INSERT INTO t2 VALUES ('2000-01-02'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 2000-01-02 00:00:00.000000 2000-01-02 ALTER TABLE t2 MODIFY a DATETIME(6); SELECT * FROM t1, t2 WHERE t1.a=CAST(t2.a AS DATE) ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-02 00:00:00.000000 2000-01-02 00:00:00.000000 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN with comparison between DATETIME(6) and BIGINT # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.123'); CREATE TABLE t2 (b BIGINT); INSERT INTO t2 VALUES (20000101); INSERT INTO t2 VALUES (20000101112233); SELECT * FROM t1, t2 WHERE a=b; a b 2000-01-01 00:00:00.000000 20000101 2000-01-01 11:22:33.000000 20000101112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and DECIMAL(20,6) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,6)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); INSERT INTO t2 VALUES (20010101112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000000 2001-01-01 11:22:33.123000 20010101112233.123000 2001-01-01 11:22:33.123456 20010101112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and DECIMAL(20,3) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,3)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000 2001-01-01 11:22:33.123000 20010101112233.123 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and DOUBLE # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 11:22:33'); INSERT INTO t1 VALUES ('0000-00-00 11:22:33.123'); INSERT INTO t1 VALUES ('0000-00-00 11:22:33.123456'); CREATE TABLE t2 (b DOUBLE); INSERT INTO t2 VALUES (112233); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b Warnings: Warning 1292 Incorrect datetime value: '112233' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233.123' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233.123' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233.123' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233.123456' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233.123456' for column 'b' at row 4 Warning 1292 Incorrect datetime value: '112233.123456' for column 'b' at row 4 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and VARCHAR # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); CREATE TABLE t2 (b VARCHAR(64)); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.1230'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.12300'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000000'); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 ADD KEY (a); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t2 ADD KEY(b); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 DROP TABLE t1, t2; # # Testing arithmetic with INT, DECIMAL, FLOAT # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); SELECT a, a + 0, a + 1, a + 1.0, a + 1e0 FROM t1; a a + 0 a + 1 a + 1.0 a + 1e0 2001-01-01 00:00:00.000000 20010101000000.000000 20010101000001.000000 20010101000001.000000 20010101000001 2001-01-01 00:00:00.000001 20010101000000.000001 20010101000001.000001 20010101000001.000001 20010101000001 CREATE TABLE t2 AS SELECT a + 1 AS i, a + 1.0 AS d, a + 1e0 AS f FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `i` decimal(27,6) DEFAULT NULL, `d` decimal(27,6) DEFAULT NULL, `f` double DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1, t2; # # Testing that DATETIME behaves as INT/DECIMAL for numeric arithmetic # CREATE TABLE t1 (t0 DATETIME, t3 DATETIME(3), t6 DATETIME(6)); CREATE TABLE t2 AS SELECT t0 + 1, t3 + 1, t6 + 1, t0 - 1, t3 - 1, t6 - 1, t0 * 1, t3 * 1, t6 * 1, t0 / 1, t3 / 1, t6 / 1, TIMESTAMP'2001-01-01 10:10:10' + 1, TIMESTAMP'2001-01-01 10:10:10.123' + 1, TIMESTAMP'2001-01-01 10:10:10.123456' + 1, TIMESTAMP'2001-01-01 10:10:10' - 1, TIMESTAMP'2001-01-01 10:10:10.123' - 1, TIMESTAMP'2001-01-01 10:10:10.123456' - 1, TIMESTAMP'2001-01-01 10:10:10' * 1, TIMESTAMP'2001-01-01 10:10:10.123' * 1, TIMESTAMP'2001-01-01 10:10:10.123456' * 1, TIMESTAMP'2001-01-01 10:10:10' / 1, TIMESTAMP'2001-01-01 10:10:10.123' / 1, TIMESTAMP'2001-01-01 10:10:10.123456' / 1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0 + 1` bigint(21) DEFAULT NULL, `t3 + 1` decimal(24,3) DEFAULT NULL, `t6 + 1` decimal(27,6) DEFAULT NULL, `t0 - 1` bigint(21) DEFAULT NULL, `t3 - 1` decimal(24,3) DEFAULT NULL, `t6 - 1` decimal(27,6) DEFAULT NULL, `t0 * 1` bigint(21) DEFAULT NULL, `t3 * 1` decimal(24,3) DEFAULT NULL, `t6 * 1` decimal(27,6) DEFAULT NULL, `t0 / 1` decimal(23,4) DEFAULT NULL, `t3 / 1` decimal(27,7) DEFAULT NULL, `t6 / 1` decimal(30,10) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10' + 1` bigint(21) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' + 1` decimal(24,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' + 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' - 1` bigint(21) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' - 1` decimal(24,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' - 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' * 1` bigint(21) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' * 1` decimal(24,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' * 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' / 1` decimal(23,4) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123' / 1` decimal(27,7) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123456' / 1` decimal(30,10) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing that DATETIME behaves as DECIMAL for SUM() and AVG() # SET @t='2010-01-01 00:11:12.123456'; CREATE TABLE t1 (t0 DATETIME, t3 DATETIME(3), t6 DATETIME(6)); INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 20100101001112 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.123 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.1230000 SUM(t3) 20100101001112.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.123456 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.1234560000 SUM(t6) 20100101001112.123456 SET @t='2010-01-01 00:11:12.000000'; INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 40200202002224 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.000 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.0615000 SUM(t3) 40200202002224.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.000000 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.0617280000 SUM(t6) 40200202002224.123456 CREATE TABLE t2 AS SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0), MIN(t3), MAX(t3), AVG(t3), SUM(t3), MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MIN(t0)` datetime DEFAULT NULL, `MAX(t0)` datetime DEFAULT NULL, `AVG(t0)` decimal(23,4) DEFAULT NULL, `SUM(t0)` decimal(41,0) DEFAULT NULL, `MIN(t3)` datetime(3) DEFAULT NULL, `MAX(t3)` datetime(3) DEFAULT NULL, `AVG(t3)` decimal(27,7) DEFAULT NULL, `SUM(t3)` decimal(45,3) DEFAULT NULL, `MIN(t6)` datetime(6) DEFAULT NULL, `MAX(t6)` datetime(6) DEFAULT NULL, `AVG(t6)` decimal(30,10) DEFAULT NULL, `SUM(t6)` decimal(48,6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing functions ADDTIME, SUBTIME, TIMESTAMP, TIMEDIFF, DATE_ADD/SUB # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('1000-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('1000-01-01 01:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000001'); SELECT ADDTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '00:00:00.000001') 1000-01-01 01:00:00.000001 1000-01-01 01:00:00.000002 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000002 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000002 SELECT ADDTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '10:00:00.000001') 1000-01-01 11:00:00.000001 1000-01-01 11:00:00.000002 2001-01-01 10:00:00.000001 2001-01-01 10:00:00.000002 2001-01-01 11:00:00.000001 2001-01-01 11:00:00.000002 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000) 1000-01-01 11:00:00 1000-01-01 11:00:00 2001-01-01 10:00:00 2001-01-01 10:00:00 2001-01-01 11:00:00 2001-01-01 11:00:00 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000.1) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000.1) 1000-01-01 11:00:00.1 1000-01-01 11:00:00.1 2001-01-01 10:00:00.1 2001-01-01 10:00:00.1 2001-01-01 11:00:00.1 2001-01-01 11:00:00.1 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) 1000-01-01 01:00:00.000000 1000-01-01 11:00:00 1000-01-01 01:00:00.000001 1000-01-01 11:00:00 2001-01-01 00:00:00.000000 2001-01-01 10:00:00 2001-01-01 00:00:00.000001 2001-01-01 10:00:00 2001-01-01 01:00:00.000000 2001-01-01 11:00:00 2001-01-01 01:00:00.000001 2001-01-01 11:00:00 SELECT a, ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) 1000-01-01 01:00:00.000000 1000-01-01 11:00:00.000000 1000-01-01 01:00:00.000001 1000-01-01 11:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000001 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) 1000-01-01 01:00:00.000000 1000-01-01 11:00:00.000000 1000-01-01 01:00:00.000001 1000-01-01 11:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000000 SELECT ADDTIME(a, a) FROM t1 ORDER BY a; ADDTIME(a, a) NULL NULL NULL NULL NULL NULL CREATE TABLE t2 AS SELECT ADDTIME(a, '00:00:00.000001'), ADDTIME(a, '10:00:00.000001'), ADDTIME(CAST(a AS DATETIME(0)), 100000), ADDTIME(CAST(a AS DATETIME(0)), 100000.1), ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))), ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))), ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `ADDTIME(a, '00:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(a, '10:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000)` datetime DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000.1)` datetime(1) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0)))` datetime DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0)))` datetime(6) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6)))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; SELECT TIMESTAMP(a, '10:00:00') FROM t1; TIMESTAMP(a, '10:00:00') 1000-01-01 11:00:00.000000 1000-01-01 11:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 10:00:00.000001 2001-01-01 11:00:00.000000 2001-01-01 11:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) 1000-01-01 01:00:00 1000-01-01 01:00:00 2001-01-01 00:00:00 2001-01-01 00:00:00 2001-01-01 01:00:00 2001-01-01 01:00:00 SELECT TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) 1000-01-01 01:00:00.000000 1000-01-01 01:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) 1000-01-01 01:00:00.000000 1000-01-01 01:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000000 CREATE TABLE t2 AS SELECT TIMESTAMP(a, '10:00:00'), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `TIMESTAMP(a, '10:00:00')` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0)))` datetime DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0)))` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6)))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; SELECT SUBTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '00:00:00.000001') 1000-01-01 00:59:59.999999 1000-01-01 01:00:00.000000 2000-12-31 23:59:59.999999 2001-01-01 00:00:00.000000 2001-01-01 00:59:59.999999 2001-01-01 01:00:00.000000 SELECT SUBTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '10:00:00.000001') 0999-12-31 14:59:59.999999 0999-12-31 15:00:00.000000 2000-12-31 13:59:59.999999 2000-12-31 14:00:00.000000 2000-12-31 14:59:59.999999 2000-12-31 15:00:00.000000 SELECT SUBTIME(a, a) FROM t1 ORDER BY a; SUBTIME(a, a) NULL NULL NULL NULL NULL NULL SELECT DATE_ADD(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(a, INTERVAL 1 MINUTE) 1000-01-01 01:01:00.000000 1000-01-01 01:01:00.000001 2001-01-01 00:01:00.000000 2001-01-01 00:01:00.000001 2001-01-01 01:01:00.000000 2001-01-01 01:01:00.000001 SELECT DATE_SUB(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(a, INTERVAL 1 MINUTE) 1000-01-01 00:59:00.000000 1000-01-01 00:59:00.000001 2000-12-31 23:59:00.000000 2000-12-31 23:59:00.000001 2001-01-01 00:59:00.000000 2001-01-01 00:59:00.000001 SELECT a, DATE_ADD(a, INTERVAL 1.1 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL 1.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 01:00:01.100000 1000-01-01 01:00:00.000001 1000-01-01 01:00:01.100001 2001-01-01 00:00:00.000000 2001-01-01 00:00:01.100000 2001-01-01 00:00:00.000001 2001-01-01 00:00:01.100001 2001-01-01 01:00:00.000000 2001-01-01 01:00:01.100000 2001-01-01 01:00:00.000001 2001-01-01 01:00:01.100001 SELECT a, DATE_ADD(a, INTERVAL 1.000009 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL 1.000009 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 01:00:01.000009 1000-01-01 01:00:00.000001 1000-01-01 01:00:01.000010 2001-01-01 00:00:00.000000 2001-01-01 00:00:01.000009 2001-01-01 00:00:00.000001 2001-01-01 00:00:01.000010 2001-01-01 01:00:00.000000 2001-01-01 01:00:01.000009 2001-01-01 01:00:00.000001 2001-01-01 01:00:01.000010 SELECT a, DATE_SUB(a, INTERVAL 1.1 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL 1.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 00:59:58.900000 1000-01-01 01:00:00.000001 1000-01-01 00:59:58.900001 2001-01-01 00:00:00.000000 2000-12-31 23:59:58.900000 2001-01-01 00:00:00.000001 2000-12-31 23:59:58.900001 2001-01-01 01:00:00.000000 2001-01-01 00:59:58.900000 2001-01-01 01:00:00.000001 2001-01-01 00:59:58.900001 SELECT a, DATE_SUB(a, INTERVAL 1.000009 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL 1.000009 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 00:59:58.999991 1000-01-01 01:00:00.000001 1000-01-01 00:59:58.999992 2001-01-01 00:00:00.000000 2000-12-31 23:59:58.999991 2001-01-01 00:00:00.000001 2000-12-31 23:59:58.999992 2001-01-01 01:00:00.000000 2001-01-01 00:59:58.999991 2001-01-01 01:00:00.000001 2001-01-01 00:59:58.999992 SELECT a, DATE_ADD(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL -0.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 00:59:59.900000 1000-01-01 01:00:00.000001 1000-01-01 00:59:59.900001 2001-01-01 00:00:00.000000 2000-12-31 23:59:59.900000 2001-01-01 00:00:00.000001 2000-12-31 23:59:59.900001 2001-01-01 01:00:00.000000 2001-01-01 00:59:59.900000 2001-01-01 01:00:00.000001 2001-01-01 00:59:59.900001 SELECT a, DATE_SUB(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL -0.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 01:00:00.100000 1000-01-01 01:00:00.000001 1000-01-01 01:00:00.100001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.100000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.100001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.100000 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.100001 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1000-01-01 01:01:00 1000-01-01 01:01:00 2001-01-01 00:01:00 2001-01-01 00:01:00 2001-01-01 01:01:00 2001-01-01 01:01:00 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1000-01-01 00:59:00 1000-01-01 00:59:00 2000-12-31 23:59:00 2000-12-31 23:59:00 2001-01-01 00:59:00 2001-01-01 00:59:00 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1000-01-01 01:00:00.000001 1000-01-01 01:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000001 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1000-01-01 00:59:59.999999 1000-01-01 00:59:59.999999 2000-12-31 23:59:59.999999 2000-12-31 23:59:59.999999 2001-01-01 00:59:59.999999 2001-01-01 00:59:59.999999 CREATE TABLE t2 AS SELECT DATE_ADD(a, INTERVAL 1 SECOND), DATE_SUB(a, INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `DATE_ADD(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(ADDTIME(a, '00:00:00.1')) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MAX(ADDTIME(a, '00:00:00.1'))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2; MAX(ADDTIME(a, '00:00:00.1')) 2001-01-01 01:00:00.100001 DROP TABLE t2; DROP TABLE t1; CREATE TABLE t1 AS SELECT DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1 SECOND) AS t0s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.1 SECOND) AS t0s1, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.12 SECOND) AS t0s2, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.123 SECOND) AS t0s3, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.1234 SECOND) AS t0s4, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.12345 SECOND) AS t0s5, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.123456 SECOND) AS t0s6, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.1', INTERVAL 1 SECOND) AS t1s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.12', INTERVAL 1 SECOND) AS t2s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.123', INTERVAL 1 SECOND) AS t3s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.1234', INTERVAL 1 SECOND) AS t4s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.12345', INTERVAL 1 SECOND) AS t5s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.123456', INTERVAL 1 SECOND) AS t6s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1 MICROSECOND) AS t0ms; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `t0s0` datetime DEFAULT NULL, `t0s1` datetime(1) DEFAULT NULL, `t0s2` datetime(2) DEFAULT NULL, `t0s3` datetime(3) DEFAULT NULL, `t0s4` datetime(4) DEFAULT NULL, `t0s5` datetime(5) DEFAULT NULL, `t0s6` datetime(6) DEFAULT NULL, `t1s0` datetime(1) DEFAULT NULL, `t2s0` datetime(2) DEFAULT NULL, `t3s0` datetime(3) DEFAULT NULL, `t4s0` datetime(4) DEFAULT NULL, `t5s0` datetime(5) DEFAULT NULL, `t6s0` datetime(6) DEFAULT NULL, `t0ms` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 AS SELECT CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00', '+00:00', '+01:00') AS d0, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.1', '+00:00', '+01:00') AS d1, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.12', '+00:00', '+01:00') AS d2, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.123', '+00:00', '+01:00') AS d3, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.1234', '+00:00', '+01:00') AS d4, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.12345', '+00:00', '+01:00') AS d5, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.123456', '+00:00', '+01:00') AS d6; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `d0` datetime DEFAULT NULL, `d1` datetime(1) DEFAULT NULL, `d2` datetime(2) DEFAULT NULL, `d3` datetime(3) DEFAULT NULL, `d4` datetime(4) DEFAULT NULL, `d5` datetime(5) DEFAULT NULL, `d6` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing copy from DATETIME to DATETIME(6) and vice versa # CREATE TABLE t1 (a DATETIME(6), b DATETIME); INSERT INTO t1 VALUES ('2001-01-01 01:02:03.123456','0000-00-00 00:00:00'); UPDATE t1 SET b=a; SELECT * FROM t1; a b 2001-01-01 01:02:03.123456 2001-01-01 01:02:03 UPDATE t1 SET b='2002-02-02 10:11:12'; UPDATE t1 SET a=b; SELECT * FROM t1; a b 2002-02-02 10:11:12.000000 2002-02-02 10:11:12 DROP TABLE t1; # # Testing ALTER from DATETIME(6) to DATETIME and vice versa # CREATE TABLE t1 (a DATETIME); INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); ALTER TABLE t1 MODIFY a DATETIME(6); SELECT * FROM t1; a 2000-01-01 01:02:03.000000 UPDATE t1 SET a='2000-01-01 01:03:03.456'; SELECT * FROM t1; a 2000-01-01 01:03:03.456000 ALTER TABLE t1 MODIFY a DATETIME; SELECT * FROM t1; a 2000-01-01 01:03:03 DROP TABLE t1; # # Testing ALTER between DATETIME and BIGINT # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 11:22:33', '2000-01-01 11:22:33'); ALTER TABLE t1 MODIFY a BIGINT, MODIFY b BIGINT; SELECT * FROM t1; a b 20000101112233 20000101112233 UPDATE t1 SET a=20000101112233, b=20000101112233; ALTER TABLE t1 MODIFY a DATETIME, MODIFY b DATETIME(6); SELECT * FROM t1; a b 2000-01-01 11:22:33 2000-01-01 11:22:33.000000 DROP TABLE t1; # # Testing ALTER between DATETIME(6) and DOUBLE # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('0001-00-00 11:22:33', '0001-00-00 11:22:33.1234'); ALTER TABLE t1 MODIFY a DOUBLE, MODIFY b DOUBLE; SELECT * FROM t1; a b 10000112233 10000112233.1234 UPDATE t1 SET a=20010101101112, b=20010101101112.1; ALTER TABLE t1 MODIFY a DATETIME, MODIFY b DATETIME(6); SELECT * FROM t1; a b 2001-01-01 10:11:12 2001-01-01 10:11:12.100000 DROP TABLE t1; # # Testing ALTER between DATETIME(6) and DECIMAL # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.1234'); ALTER TABLE t1 MODIFY a DECIMAL(30,6), MODIFY b DECIMAL(30,6); SELECT * FROM t1; a b 20010101112233.000000 20010101112233.123400 UPDATE t1 SET a=20010101112233, b=20010101112233.1234; ALTER TABLE t1 MODIFY a DATETIME, MODIFY b DATETIME(6); SELECT * FROM t1; a b 2001-01-01 11:22:33 2001-01-01 11:22:33.123400 DROP TABLE t1; # # Testing ALTER from DATETIME to various other temporal types # CREATE TABLE t1 (a DATETIME(6), b DATETIME(6), c DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1'); ALTER TABLE t1 MODIFY a TIME(6), MODIFY b TIMESTAMP(6), MODIFY c DATE; Warnings: Note 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'c' at row 1 SELECT * FROM t1; a b c 10:10:10.100000 2001-01-01 10:10:10.100000 2001-01-01 DROP TABLE t1; # # Testing EXPLAIN EXTENDED SELECT for CAST(DATETIME(N)) # EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime) AS `CAST('10:10:10' AS DATETIME)` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(0)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime) AS `CAST('10:10:10' AS DATETIME(0))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(1)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime(1)) AS `CAST('10:10:10' AS DATETIME(1))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(2)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime(2)) AS `CAST('10:10:10' AS DATETIME(2))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(3)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime(3)) AS `CAST('10:10:10' AS DATETIME(3))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(4)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime(4)) AS `CAST('10:10:10' AS DATETIME(4))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(5)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime(5)) AS `CAST('10:10:10' AS DATETIME(5))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(6)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select cast('10:10:10' as datetime(6)) AS `CAST('10:10:10' AS DATETIME(6))` # # Testing CAST with bad FSPs # SELECT CAST(1 AS DATETIME(-1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1))' at line 1 SELECT CAST(1 AS DATETIME(7)); ERROR 42000: Too big precision 7 specified for '1'. Maximum is 6. SELECT CAST(1 AS DATETIME(31)); ERROR 42000: Too big precision 31 specified for '1'. Maximum is 6. # # Testing conversion from DATETIME(6) to INT # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:58.499'); INSERT INTO t1 VALUES ('2001-01-01 10:10:58.999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:59.499'); INSERT INTO t1 VALUES ('2001-01-01 10:10:59.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.999'); ALTER TABLE t1 ADD b BIGINT, ADD c DATETIME(6); UPDATE t1 SET b=a, c=a; ALTER TABLE t1 MODIFY c BIGINT; SELECT a, CAST(a AS SIGNED), b, c FROM t1; a CAST(a AS SIGNED) b c 2001-01-01 10:10:58.499000 20010101101058 20010101101058 20010101101058 2001-01-01 10:10:58.999000 20010101101058 20010101101058 20010101101058 2001-01-01 10:10:59.499000 20010101101059 20010101101059 20010101101059 2001-01-01 10:10:59.999000 20010101101059 20010101101059 20010101101059 2001-12-31 23:59:58.499000 20011231235958 20011231235958 20011231235958 2001-12-31 23:59:58.999000 20011231235958 20011231235958 20011231235958 2001-12-31 23:59:59.499000 20011231235959 20011231235959 20011231235959 2001-12-31 23:59:59.999000 20011231235959 20011231235959 20011231235959 DROP TABLE t1; # # Testing INT value and CAST of DATETIME(6) to various other types # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.999'); SELECT a << 0 FROM t1; a << 0 20010101112233 20010101112233 20011231235958 20011231235958 20011231235959 20011231235959 SELECT CAST(a AS SIGNED) FROM t1; CAST(a AS SIGNED) 20010101112233 20010101112233 20011231235958 20011231235958 20011231235959 20011231235959 SELECT CAST(a AS UNSIGNED) FROM t1; CAST(a AS UNSIGNED) 20010101112233 20010101112233 20011231235958 20011231235958 20011231235959 20011231235959 SELECT CAST(a AS DECIMAL(30,6)) FROM t1; CAST(a AS DECIMAL(30,6)) 20010101112233.123000 20010101112233.999000 20011231235958.499000 20011231235958.999000 20011231235959.499000 20011231235959.999000 SELECT CAST(a AS DECIMAL(30,3)) FROM t1; CAST(a AS DECIMAL(30,3)) 20010101112233.123 20010101112233.999 20011231235958.499 20011231235958.999 20011231235959.499 20011231235959.999 SELECT CAST(a AS CHAR) FROM t1; CAST(a AS CHAR) 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.999000 2001-12-31 23:59:58.499000 2001-12-31 23:59:58.999000 2001-12-31 23:59:59.499000 2001-12-31 23:59:59.999000 SELECT CAST(a AS CHAR(6)) FROM t1; CAST(a AS CHAR(6)) 2001-0 2001-0 2001-1 2001-1 2001-1 2001-1 Warnings: Warning 1292 Truncated incorrect CHAR(6) value: '2001-01-01 11:22:33.123000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-01-01 11:22:33.999000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:58.499000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:58.999000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:59.499000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:59.999000' CREATE TABLE t2 AS SELECT CAST(a AS CHAR) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT a, LENGTH(a) FROM t2; a LENGTH(a) 2001-01-01 11:22:33.123000 26 2001-01-01 11:22:33.999000 26 2001-12-31 23:59:58.499000 26 2001-12-31 23:59:58.999000 26 2001-12-31 23:59:59.499000 26 2001-12-31 23:59:59.999000 26 DROP TABLE t2; DROP TABLE t1; # # Testing explicit CAST from TIME to DATETIME # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME, b TIME(6), c INT, d VARCHAR(32), e INT); INSERT INTO t1 VALUES ('15:00:00', '15:00:00.123456', 150000, '15:00:00', 15*3600); INSERT INTO t1 VALUES ('45:00:00', '45:00:00.123456', 450000, '45:00:00', 45*3600); INSERT INTO t1 VALUES ('-15:00:00', '-15:00:00.123456', -150000, '-15:00:00', -15*3600); INSERT INTO t1 VALUES ('-45:00:00', '-45:00:00.123456', -450000, '-45:00:00', -45*3600); SELECT a, CAST(a AS DATETIME), CAST(b AS DATETIME), CAST(c AS DATETIME), CAST(d AS DATETIME), CAST(SEC_TO_TIME(e) AS DATETIME), CAST(CAST(a AS TIME) AS DATETIME) FROM t1;; a 15:00:00 CAST(a AS DATETIME) 2001-01-01 15:00:00 CAST(b AS DATETIME) 2001-01-01 15:00:00 CAST(c AS DATETIME) 2015-00-00 00:00:00 CAST(d AS DATETIME) 2015-00-00 00:00:00 CAST(SEC_TO_TIME(e) AS DATETIME) 2001-01-01 15:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2001-01-01 15:00:00 a 45:00:00 CAST(a AS DATETIME) 2001-01-02 21:00:00 CAST(b AS DATETIME) 2001-01-02 21:00:00 CAST(c AS DATETIME) 2045-00-00 00:00:00 CAST(d AS DATETIME) 2045-00-00 00:00:00 CAST(SEC_TO_TIME(e) AS DATETIME) 2001-01-02 21:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2001-01-02 21:00:00 a -15:00:00 CAST(a AS DATETIME) 2000-12-31 09:00:00 CAST(b AS DATETIME) 2000-12-31 08:59:59 CAST(c AS DATETIME) NULL CAST(d AS DATETIME) NULL CAST(SEC_TO_TIME(e) AS DATETIME) 2000-12-31 09:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2000-12-31 09:00:00 a -45:00:00 CAST(a AS DATETIME) 2000-12-30 03:00:00 CAST(b AS DATETIME) 2000-12-30 02:59:59 CAST(c AS DATETIME) NULL CAST(d AS DATETIME) NULL CAST(SEC_TO_TIME(e) AS DATETIME) 2000-12-30 03:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2000-12-30 03:00:00 Warnings: Level Warning Code 1292 Message Incorrect datetime value: '-150000' Level Warning Code 1292 Message Incorrect datetime value: '-15:00:00' Level Warning Code 1292 Message Incorrect datetime value: '-450000' Level Warning Code 1292 Message Incorrect datetime value: '-45:00:00' SELECT a, CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)), CAST(c AS DATETIME(6)), CAST(d AS DATETIME(6)), CAST(SEC_TO_TIME(e) AS DATETIME(6)), CAST(CAST(a AS TIME) AS DATETIME(6)) FROM t1;; a 15:00:00 CAST(a AS DATETIME(6)) 2001-01-01 15:00:00.000000 CAST(b AS DATETIME(6)) 2001-01-01 15:00:00.123456 CAST(c AS DATETIME(6)) 2015-00-00 00:00:00.000000 CAST(d AS DATETIME(6)) 2015-00-00 00:00:00.000000 CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2001-01-01 15:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2001-01-01 15:00:00.000000 a 45:00:00 CAST(a AS DATETIME(6)) 2001-01-02 21:00:00.000000 CAST(b AS DATETIME(6)) 2001-01-02 21:00:00.123456 CAST(c AS DATETIME(6)) 2045-00-00 00:00:00.000000 CAST(d AS DATETIME(6)) 2045-00-00 00:00:00.000000 CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2001-01-02 21:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2001-01-02 21:00:00.000000 a -15:00:00 CAST(a AS DATETIME(6)) 2000-12-31 09:00:00.000000 CAST(b AS DATETIME(6)) 2000-12-31 08:59:59.876544 CAST(c AS DATETIME(6)) NULL CAST(d AS DATETIME(6)) NULL CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2000-12-31 09:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2000-12-31 09:00:00.000000 a -45:00:00 CAST(a AS DATETIME(6)) 2000-12-30 03:00:00.000000 CAST(b AS DATETIME(6)) 2000-12-30 02:59:59.876544 CAST(c AS DATETIME(6)) NULL CAST(d AS DATETIME(6)) NULL CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2000-12-30 03:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2000-12-30 03:00:00.000000 Warnings: Level Warning Code 1292 Message Incorrect datetime value: '-150000' Level Warning Code 1292 Message Incorrect datetime value: '-15:00:00' Level Warning Code 1292 Message Incorrect datetime value: '-450000' Level Warning Code 1292 Message Incorrect datetime value: '-45:00:00' DROP TABLE t1; SET @@timestamp=default; # # Testing comparison between TIME and DATETIME # This tests Field_time[f]::val_date_temporal() # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30.123'); CREATE TABLE t1 (a TIME, b DATETIME, a6 TIME(6), b6 DATETIME(6)); INSERT INTO t1 VALUES (current_time, current_timestamp, current_time(6), current_timestamp(6)); SELECT a, b FROM t1 WHERE a=b; a b 10:20:30 2001-01-01 10:20:30 SELECT a6, b6 FROM t1 WHERE a6=b6; a6 b6 10:20:30.123000 2001-01-01 10:20:30.123000 # In this query both expressions make DATETIME data type SELECT LEAST(a,b), LEAST(b,a) FROM t1; LEAST(a,b) LEAST(b,a) 2001-01-01 10:20:30 2001-01-01 10:20:30 SELECT CONCAT(LEAST(a,b)), CONCAT(LEAST(b,a)) FROM t1; CONCAT(LEAST(a,b)) CONCAT(LEAST(b,a)) 2001-01-01 10:20:30 2001-01-01 10:20:30 # In this query all expressions make VARCHAR data type # So the result format depends on which value wins, with the first value having higher precedence: SELECT LEAST(a,b,'2001-01-02'), LEAST(b,a,'2001-01-02'), LEAST(a,b,'2000-01-01') FROM t1; LEAST(a,b,'2001-01-02') LEAST(b,a,'2001-01-02') LEAST(a,b,'2000-01-01') 2001-01-01 10:20:30.000000 2001-01-01 10:20:30.000000 2000-01-01 00:00:00.000000 # More tests with LEAST: SELECT a, b FROM t1 WHERE a=LEAST(a,a); a b 10:20:30 2001-01-01 10:20:30 SELECT a, b FROM t1 WHERE a=LEAST(a,b); a b 10:20:30 2001-01-01 10:20:30 DROP TABLE t1; SET @@timestamp=DEFAULT; # # Comparison between DATETIME column and constant TIME epxression # CREATE TABLE t1 (a DATETIME(6)); SET @@timestamp=UNIX_TIMESTAMP('2010-01-01 10:50:50.123'); SELECT NOW(6); NOW(6) 2010-01-01 10:50:50.123000 INSERT INTO t1 VALUES (CURRENT_TIMESTAMP(6)), ('2010-01-01 00:00:00'); SELECT * FROM t1 WHERE a=TIME'10:50:50.123'; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a=CURRENT_TIME(6); a SELECT * FROM t1 WHERE a=CAST('10:50:50.123' AS TIME(6)); a SELECT * FROM t1 WHERE a=MAKETIME(10,50,50.123); a SELECT * FROM t1 WHERE a=SEC_TO_TIME(39050.123); a SELECT * FROM t1 WHERE TIME'10:50:50.123'=a; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE CURRENT_TIME(6)=a; a SELECT * FROM t1 WHERE CAST('10:50:50.123' AS TIME(6))=a; a SELECT * FROM t1 WHERE MAKETIME(10,50,50.123)=a; a SELECT * FROM t1 WHERE SEC_TO_TIME(39050.123)=a; a DROP TABLE t1; SET @@timestamp=DEFAULT; # # BETWEEN for combinations of DATETIME and TIME # SET @@timestamp=UNIX_TIMESTAMP('2010-01-01 10:50:50.123'); CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2010-01-01 10:50:50.100'), ('2010-01-01 10:50:50.123'), ('2010-01-01 10:50:50.200'); SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIME'10:50:50.123'; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2010-01-01 10:50:50.120' AND TIME'10:50:50.123'; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIMESTAMP'2010-01-01 10:50:50.123'; a 2010-01-01 10:50:50.123000 ALTER TABLE t1 MODIFY a TIME(6); Warnings: Note 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'a' at row 2 Note 1265 Data truncated for column 'a' at row 3 SELECT * FROM t1; a 10:50:50.100000 10:50:50.123000 10:50:50.200000 SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIME'10:50:50.123'; a 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2010-01-01 10:50:50.120' AND TIME'10:50:50.123'; a 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIMESTAMP'2010-01-01 10:50:50.123'; a 10:50:50.123000 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 (c INT, d VARCHAR(32)); INSERT INTO t1 VALUES (156060, '15:60:60'); SELECT CAST(c AS DATETIME), CAST(d AS DATETIME) FROM t1; CAST(c AS DATETIME) CAST(d AS DATETIME) NULL NULL Warnings: Warning 1292 Incorrect datetime value: '156060' Warning 1292 Incorrect datetime value: '15:60:60' SELECT CAST(c AS DATETIME(6)), CAST(d AS DATETIME(6)) FROM t1; CAST(c AS DATETIME(6)) CAST(d AS DATETIME(6)) NULL NULL Warnings: Warning 1292 Incorrect datetime value: '156060' Warning 1292 Incorrect datetime value: '15:60:60' DROP TABLE t1; # # Testing function TIMESTAMP(expr) # CREATE TABLE t1 AS SELECT TIMESTAMP(20010101101010), TIMESTAMP(20010101101010.1), TIMESTAMP(20010101101010.12), TIMESTAMP(20010101101010.123), TIMESTAMP(20010101101010.1234), TIMESTAMP(20010101101010.12345), TIMESTAMP(20010101101010.123456), TIMESTAMP('2001-01-01 00:01:01'), TIMESTAMP('2001-01-01 00:01:01.1'), TIMESTAMP('2001-01-01 00:01:01.12'), TIMESTAMP('2001-01-01 00:01:01.123'), TIMESTAMP('2001-01-01 00:01:01.1234'), TIMESTAMP('2001-01-01 00:01:01.12345'), TIMESTAMP('2001-01-01 00:01:01.123456'), TIMESTAMP(CONCAT('2001-01-01 00:01:01','')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1234')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12345')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123456')), TIMESTAMP(TIME'00:01:01'), TIMESTAMP(TIME'00:01:01.1'), TIMESTAMP(TIME'00:01:01.12'), TIMESTAMP(TIME'00:01:01.123'), TIMESTAMP(TIME'00:01:01.1234'), TIMESTAMP(TIME'00:01:01.12345'), TIMESTAMP(TIME'00:01:01.123456'), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1234')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12345')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123456')); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `TIMESTAMP(20010101101010)` datetime DEFAULT NULL, `TIMESTAMP(20010101101010.1)` datetime(1) DEFAULT NULL, `TIMESTAMP(20010101101010.12)` datetime(2) DEFAULT NULL, `TIMESTAMP(20010101101010.123)` datetime(3) DEFAULT NULL, `TIMESTAMP(20010101101010.1234)` datetime(4) DEFAULT NULL, `TIMESTAMP(20010101101010.12345)` datetime(5) DEFAULT NULL, `TIMESTAMP(20010101101010.123456)` datetime(6) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01')` datetime DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.1')` datetime(1) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.12')` datetime(2) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.123')` datetime(3) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.1234')` datetime(4) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.12345')` datetime(5) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.123456')` datetime(6) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01',''))` datetime DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1'))` datetime(1) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12'))` datetime(2) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123'))` datetime(3) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1234'))` datetime(4) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12345'))` datetime(5) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123456'))` datetime(6) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01')` datetime DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.1')` datetime(1) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.12')` datetime(2) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.123')` datetime(3) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.1234')` datetime(4) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.12345')` datetime(5) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.123456')` datetime(6) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00'))` datetime DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1'))` datetime(1) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12'))` datetime(2) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123'))` datetime(3) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1234'))` datetime(4) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12345'))` datetime(5) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123456'))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing DEFAULT value # CREATE TABLE t1 (a DATETIME(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` datetime(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Mixing varios DATETIME(N) in CASE # CREATE TABLE t1 ( t0 DATETIME, t1 DATETIME(1), t3 DATETIME(3),t4 DATETIME(4), t6 DATETIME(6)); CREATE TABLE t2 AS SELECT CASE WHEN 1 THEN t0 ELSE t1 END, CASE WHEN 1 THEN t0 ELSE t3 END, CASE WHEN 1 THEN t0 ELSE t4 END, CASE WHEN 1 THEN t0 ELSE t6 END, CASE WHEN 1 THEN t1 ELSE t0 END, CASE WHEN 1 THEN t1 ELSE t3 END, CASE WHEN 1 THEN t1 ELSE t4 END, CASE WHEN 1 THEN t1 ELSE t6 END, CASE WHEN 1 THEN t3 ELSE t0 END, CASE WHEN 1 THEN t3 ELSE t1 END, CASE WHEN 1 THEN t3 ELSE t4 END, CASE WHEN 1 THEN t3 ELSE t6 END, CASE WHEN 1 THEN t4 ELSE t0 END, CASE WHEN 1 THEN t4 ELSE t1 END, CASE WHEN 1 THEN t4 ELSE t3 END, CASE WHEN 1 THEN t4 ELSE t6 END, CASE WHEN 1 THEN t6 ELSE t0 END, CASE WHEN 1 THEN t6 ELSE t1 END, CASE WHEN 1 THEN t6 ELSE t3 END, CASE WHEN 1 THEN t6 ELSE t4 END FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CASE WHEN 1 THEN t0 ELSE t1 END` datetime(1) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t3 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t4 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t0 END` datetime(1) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t3 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t4 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t0 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t1 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t4 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t0 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t1 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t3 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t0 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t1 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t3 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t4 END` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing various DATETTIME(N) in COALESCE # CREATE TABLE t1 ( a DATETIME(6), b DATETIME(6), c DATETIME, d DATETIME, e DATETIME(3), f DATETIME(4)); CREATE TABLE t2 AS SELECT COALESCE(a, b), COALESCE(c, b), COALESCE(c, d), COALESCE(e, f), COALESCE(c, e), COALESCE(c, f) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `COALESCE(a, b)` datetime(6) DEFAULT NULL, `COALESCE(c, b)` datetime(6) DEFAULT NULL, `COALESCE(c, d)` datetime DEFAULT NULL, `COALESCE(e, f)` datetime(4) DEFAULT NULL, `COALESCE(c, e)` datetime(3) DEFAULT NULL, `COALESCE(c, f)` datetime(4) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CONCAT(COALESCE(a, b)), CONCAT(COALESCE(c, b)), CONCAT(COALESCE(c, d)), CONCAT(COALESCE(e, f)), CONCAT(COALESCE(c, e)), CONCAT(COALESCE(c, f)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CONCAT(COALESCE(a, b))` varchar(26) DEFAULT NULL, `CONCAT(COALESCE(c, b))` varchar(26) DEFAULT NULL, `CONCAT(COALESCE(c, d))` varchar(19) DEFAULT NULL, `CONCAT(COALESCE(e, f))` varchar(24) DEFAULT NULL, `CONCAT(COALESCE(c, e))` varchar(23) DEFAULT NULL, `CONCAT(COALESCE(c, f))` varchar(24) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing DATETIME(6) with another DATETIME(6) in IF # CREATE TABLE t1 (a DATETIME(6), b DATETIME(6)); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing DATETIME(N) with DATETIME(M) in IF # CREATE TABLE t1 (a DATETIME(1), b DATETIME(2)); CREATE TABLE t2 AS SELECT IF(1, a, b), IF(1, b, a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `IF(1, a, b)` datetime(2) DEFAULT NULL, `IF(1, b, a)` datetime(2) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing DATETIME(6) NOT NULL with another DATETIME(6) NOT NULL # CREATE TABLE t1 (a DATETIME(6) NOT NULL, b DATETIME(6) NOT NULL); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(6) and DATETIME(6) # CREATE TABLE t1 (a DATETIME(6) NOT NULL, b DATETIME(6) NOT NULL); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(n) # CREATE TABLE t1 (t0 DATETIME, t1 DATETIME(1), t3 DATETIME(3), t4 DATETIME(4)); CREATE TABLE t2 AS SELECT t0 FROM t1 UNION SELECT t1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0` datetime(1) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT t1 FROM t1 UNION SELECT t3 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t1` datetime(3) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT t3 FROM t1 UNION SELECT t4 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t3` datetime(4) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(6) and DATETIME / DATE # CREATE TABLE t1 (a DATETIME NOT NULL, b DATETIME(6) NOT NULL, c DATE NOT NULL); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456','2001-01-01'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `b` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY b; b 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT c FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra b datetime(6) NO 0000-00-00 00:00:00.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT c FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra c datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY c; c 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(6) and various other types # CREATE TABLE t1 (a DATETIME(6), b BIGINT, c DOUBLE, d DECIMAL(20,6), e VARCHAR(20)); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT c FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT e FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing DATETIME(6) field in combination with DATETIME type functions # CREATE TABLE t1 (a DATETIME(6), b TIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:00:00.123456', '10:00:00.123456'); INSERT INTO t1 VALUES ('2001-01-01 10:00:00', '10:00:00'); SELECT * FROM t1 WHERE a=TIMESTAMP('2001-01-01', b); a b 2001-01-01 10:00:00.123456 10:00:00.123456 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00'); a b 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00.123456'); a b 2001-01-01 10:00:00.123456 10:00:00.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIMESTAMP, CURRENT_TIME); SELECT COUNT(*) FROM t1 WHERE a <= CURRENT_TIMESTAMP; COUNT(*) 1 SELECT COUNT(*) FROM t1 WHERE a >= SUBTIME(CURRENT_TIMESTAMP, '10:00:00'); COUNT(*) 1 DROP TABLE t1; # # ORDER BY DATETIME(6) function # CREATE TABLE t1(a DATETIME(6)); INSERT INTO t1 (a) VALUES ('9999-12-31 00:00:00.000002'); INSERT INTO t1 (a) VALUES ('9999-12-31 00:00:00.000001'); INSERT INTO t1 (a) VALUES ('9999-12-31 00:00:00.000000'); INSERT INTO t1 (a) VALUES ('9999-12-31 23:59:59.000001'); INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.000003'); INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 (a) VALUES ('0000-00-00 00:00:00.000000'); SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00'); a 0000-00-00 00:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000003 9999-12-31 00:00:00.000000 9999-12-31 00:00:00.000001 9999-12-31 00:00:00.000002 9999-12-31 23:59:59.000001 SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00') DESC; a 9999-12-31 23:59:59.000001 9999-12-31 00:00:00.000002 9999-12-31 00:00:00.000001 9999-12-31 00:00:00.000000 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing partitions # CREATE TABLE t1 (a DATETIME(6)) PARTITION BY KEY(a) PARTITIONS 4; INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000010'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000011'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000012'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000013'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000014'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000015'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000016'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000110'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000111'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000112'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000113'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000114'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000115'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000116'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000210'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000211'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000212'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000213'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000214'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000215'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000216'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000006'); SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000214 2001-01-01 00:00:00.000216 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000213 2001-01-01 00:00:00.000215 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000002 2001-01-01 00:00:02.000003 2001-01-01 00:00:02.000004 2001-01-01 00:00:02.000005 2001-01-01 00:00:02.000006 ALTER TABLE t1 PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN ('2001-01-01 00:00:00.000200'), PARTITION p1 VALUES LESS THAN ('2001-01-01 00:00:01'), PARTITION p2 VALUES LESS THAN ('2001-01-01 00:00:02.000003'), PARTITION p3 VALUES LESS THAN MAXVALUE ); SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000115 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000214 2001-01-01 00:00:00.000216 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000213 2001-01-01 00:00:00.000215 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000002 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:02.000003 2001-01-01 00:00:02.000004 2001-01-01 00:00:02.000005 2001-01-01 00:00:02.000006 DROP TABLE t1; # # Checking that DATETIME/DATE literals can be a partition LESS value # CREATE TABLE t1 (s1 DATETIME(6)) PARTITION BY RANGE COLUMNS (s1) (PARTITION p1 VALUES LESS THAN (TIMESTAMP'2001-01-01 01:01:01.000001'), PARTITION p2 VALUES LESS THAN (DATE'2002-01-01')); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `s1` datetime(6) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' /*!50500 PARTITION BY RANGE COLUMNS(s1) (PARTITION p1 VALUES LESS THAN ('2001-01-01 01:01:01.000001') ENGINE = ENGINE, PARTITION p2 VALUES LESS THAN ('2002-01-01') ENGINE = ENGINE) */ DROP TABLE t1; # # Testing CAST to DATETIME and DATETIME(6) # CREATE TABLE t1 AS SELECT CAST(111 AS DATETIME), CAST(100000000 AS DATETIME), CAST(111.1 AS DATETIME), CAST('20001111' AS DATETIME), CAST(111e0 AS DATETIME), CAST(111 AS DATETIME(0)), CAST(100000000 AS DATETIME(0)), CAST(111.1 AS DATETIME(0)), CAST('20001111' AS DATETIME(0)), CAST(111e0 AS DATETIME(0)), CAST(111 AS DATETIME(6)), CAST(100000000 AS DATETIME(6)), CAST(111.1 AS DATETIME(6)), CAST('20001111' AS DATETIME(6)), CAST(111e0 AS DATETIME(6)); Warnings: Warning 1292 Incorrect datetime value: '100000000' Warning 1292 Incorrect datetime value: '100000000' Warning 1292 Incorrect datetime value: '100000000' SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `CAST(111 AS DATETIME)` datetime DEFAULT NULL, `CAST(100000000 AS DATETIME)` datetime DEFAULT NULL, `CAST(111.1 AS DATETIME)` datetime DEFAULT NULL, `CAST('20001111' AS DATETIME)` datetime DEFAULT NULL, `CAST(111e0 AS DATETIME)` datetime DEFAULT NULL, `CAST(111 AS DATETIME(0))` datetime DEFAULT NULL, `CAST(100000000 AS DATETIME(0))` datetime DEFAULT NULL, `CAST(111.1 AS DATETIME(0))` datetime DEFAULT NULL, `CAST('20001111' AS DATETIME(0))` datetime DEFAULT NULL, `CAST(111e0 AS DATETIME(0))` datetime DEFAULT NULL, `CAST(111 AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(100000000 AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(111.1 AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST('20001111' AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(111e0 AS DATETIME(6))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.123456'); CREATE TABLE t2 AS SELECT CAST(a AS DATETIME), CAST(b AS DATETIME) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME)` datetime DEFAULT NULL, `CAST(b AS DATETIME)` datetime DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(0)), CAST(b AS DATETIME(0)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(0))` datetime DEFAULT NULL, `CAST(b AS DATETIME(0))` datetime DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(b AS DATETIME(6))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; # # Testing Item_datetime_typecast::val_str # SELECT CONCAT(CAST(a AS DATETIME(0))), CONCAT(CAST(b AS DATETIME(0))) FROM t1; CONCAT(CAST(a AS DATETIME(0))) CONCAT(CAST(b AS DATETIME(0))) 2001-01-01 11:22:33 2001-01-01 11:22:33 SELECT CONCAT(CAST(a AS DATETIME(6))), CONCAT(CAST(b AS DATETIME(6))) FROM t1; CONCAT(CAST(a AS DATETIME(6))) CONCAT(CAST(b AS DATETIME(6))) 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123456 SELECT CONCAT(CAST(a AS DATETIME)), CONCAT(CAST(b AS DATETIME)) FROM t1; CONCAT(CAST(a AS DATETIME)) CONCAT(CAST(b AS DATETIME)) 2001-01-01 11:22:33 2001-01-01 11:22:33 # # Testing Item_datetime_typecast::get_time # SELECT CAST(a AS DATETIME(0)), CAST(b AS DATETIME(0)) FROM t1; CAST(a AS DATETIME(0)) CAST(b AS DATETIME(0)) 2001-01-01 11:22:33 2001-01-01 11:22:33 SELECT CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)) FROM t1; CAST(a AS DATETIME(6)) CAST(b AS DATETIME(6)) 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123456 SELECT CAST(a AS DATETIME), CAST(b AS DATETIME) FROM t1; CAST(a AS DATETIME) CAST(b AS DATETIME) 2001-01-01 11:22:33 2001-01-01 11:22:33 DROP TABLE t1; # # Testing Item_datetime_typecast::val_int # SELECT CAST('2001-01-01 10:11:12' AS DATETIME(0)) + 1; CAST('2001-01-01 10:11:12' AS DATETIME(0)) + 1 20010101101113 # # Testing Item_time_typecast::val_decimal # SELECT CAST('2001-01-01 10:11:12' AS DATETIME(6)) + 1; CAST('2001-01-01 10:11:12' AS DATETIME(6)) + 1 20010101101113.000000 # # Testing CAST from numeric types to DATETIME # CREATE TABLE t1 (bi BIGINT, d DOUBLE, dc DECIMAL(30,6)); INSERT INTO t1 VALUES (10101101112, 10101101112.1, 10101101112.1); INSERT INTO t1 VALUES (20010101101112, 20010101101112.1, 20010101101112.1); SELECT CAST(bi AS DATETIME(1)), CAST(d AS DATETIME(1)), CAST(dc AS DATETIME(1)), CAST(10101101112 AS DATETIME(1)), CAST(10101101112.1 AS DATETIME(1)), CAST(20010101101112 AS DATETIME(1)), CAST(20010101101112.1 AS DATETIME(1)) FROM t1; CAST(bi AS DATETIME(1)) 2010-10-11 01:11:02.0 CAST(d AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(dc AS DATETIME(1)) NULL CAST(10101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(10101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(20010101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(20010101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(bi AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(d AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(dc AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(10101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(10101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(20010101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(20010101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 Warnings: Level Warning Code 1292 Message Incorrect datetime value: '10101101112.100000' DROP TABLE t1; SELECT CAST(1e300 AS DATETIME); CAST(1e300 AS DATETIME) NULL Warnings: Warning 1292 Incorrect datetime value: '1e300' SELECT CAST(999999999999999999999999.999 AS DATETIME); CAST(999999999999999999999999.999 AS DATETIME) NULL Warnings: Warning 1292 Incorrect datetime value: '999999999999999999999999.999' SELECT CAST(9223372036854775807 AS DATETIME); CAST(9223372036854775807 AS DATETIME) NULL Warnings: Warning 1292 Incorrect datetime value: '9223372036854775807' # # Testing comparison between a DATETIME(6) field and a DATETIME(N) type cast # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000003'); SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(6)); a 2001-01-01 10:11:12.000003 SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(0)); a 2001-01-01 10:11:12.000000 DROP TABLE t1; # # Testing comparison between CAST(x AS DATETIME(N)) and INT # SELECT CAST('2001-01-01 10:11:12.123' AS DATETIME(0)) = 20010101101112; CAST('2001-01-01 10:11:12.123' AS DATETIME(0)) = 20010101101112 1 SELECT CAST(20010101101112.123 AS DATETIME(0)) = 20010101101112; CAST(20010101101112.123 AS DATETIME(0)) = 20010101101112 1 SELECT CAST(00010101101112.123e0 AS DATETIME(0)) = 20010101101112; CAST(00010101101112.123e0 AS DATETIME(0)) = 20010101101112 1 # # Testing Item_time_typecast::val_int_packed() # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 23:00:00', '2001-01-01 23:00:00.123456'); SELECT CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1) 1 DROP TABLE t1; # # Testing function MICROSECOND # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.000001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.100001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.999999'); SELECT a, MICROSECOND(a) FROM t1; a MICROSECOND(a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 SELECT a, EXTRACT(MICROSECOND FROM a) FROM t1; a EXTRACT(MICROSECOND FROM a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 DROP TABLE t1; SELECT MICROSECOND(CAST(20010101235959.456 AS DATETIME(6))); MICROSECOND(CAST(20010101235959.456 AS DATETIME(6))) 456000 SELECT EXTRACT(MICROSECOND FROM CAST(20010101235959.456 AS DATETIME(6))); EXTRACT(MICROSECOND FROM CAST(20010101235959.456 AS DATETIME(6))) 456000 # # Testing PS # CREATE TABLE t1 (a DATETIME(6)); PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; SET @a='2001-01-01 11:22:33.123456'; SET @b=20010101112233.123456; SET @c=0.123456e0; EXECUTE stmt USING @a; EXECUTE stmt USING @c; DEALLOCATE PREPARE stmt; SELECT * FROM t1; a 2001-01-01 11:22:33.123456 0000-00-00 00:00:00.123456 PREPARE stmt FROM 'SELECT * FROM t1 WHERE a=?'; EXECUTE stmt USING @a; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @b; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @c; a 0000-00-00 00:00:00.123456 DEALLOCATE PREPARE stmt; DROP TABLE t1; # # Testing DATETIME(6) and user variables # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.123456'); SET @a='2001-01-01 11:22:33.123456'; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=20010101112233.123456; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=0.123456e0; SELECT * FROM t1 WHERE a=@a; a 0000-00-00 00:00:00.123456 SET @a=NULL; SELECT a INTO @a FROM t1 LIMIT 1; SELECT @a; @a 2001-01-01 11:22:33.123456 DROP TABLE t1; CREATE TABLE t1 AS SELECT @a AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` longtext ) ENGINE=TokuDB DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t1; a 2001-01-01 11:22:33.123456 DROP TABLE t1; # # Testing SP # CREATE PROCEDURE p1 () BEGIN DECLARE a DATETIME(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a DATETIME(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1 (a DATETIME(6)) BEGIN SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(a DATETIME(6)) BEGIN SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(20010101112233)// a 2001-01-01 11:22:33.000000 CALL p1(20010101112233.123)// a 2001-01-01 11:22:33.123000 CALL p1(0.123e0)// a 0000-00-00 00:00:00.123000 CALL p1('2001-01-01 11:22:33.123')// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1() BEGIN DECLARE a DATETIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a DATETIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// Table Create Table t1 CREATE TABLE `t1` ( `a` datetime(6) DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP PROCEDURE p1// CREATE FUNCTION p1 (a DATETIME(6)) RETURNS DATETIME(6) BEGIN RETURN a; END// SHOW CREATE FUNCTION p1// Function sql_mode Create Function character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `p1`(a DATETIME(6)) RETURNS datetime(6) BEGIN RETURN a; END latin1 latin1_swedish_ci latin1_swedish_ci SELECT p1(20010101112233)// p1(20010101112233) 2001-01-01 11:22:33.000000 SELECT p1(20010101112233.123)// p1(20010101112233.123) 2001-01-01 11:22:33.123000 DROP FUNCTION p1// # # Testing INFORMATION_SCHEMA.COLUMNS # CREATE TABLE t1 (a DATETIME(6)); SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';; TABLE_CATALOG def TABLE_SCHEMA test TABLE_NAME t1 COLUMN_NAME a ORDINAL_POSITION 1 COLUMN_DEFAULT NULL IS_NULLABLE YES DATA_TYPE datetime CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION 6 CHARACTER_SET_NAME NULL COLLATION_NAME NULL COLUMN_TYPE datetime(6) COLUMN_KEY EXTRA PRIVILEGES # COLUMN_COMMENT DROP TABLE t1; # # SELECT from a subquery # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM (SELECT * FROM t1) t12; a 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN and = subqueries # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM t1 WHERE a IN (SELECT MIN(a) FROM t1); a 2001-01-01 00:00:00.123456 SELECT * FROM t1 WHERE a = (SELECT a FROM t1 ORDER BY a DESC LIMIT 1); a 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN subquery + GROUP # CREATE TABLE t1 (id INT, a DATETIME(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:00:00.123456'), (1, '2001-01-01 11:00:00.123456'); INSERT INTO t1 VALUES (2, '2001-01-01 00:01:00.123456'), (2, '2001-01-01 11:01:00.123456'); INSERT INTO t1 VALUES (3, NULL); SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM t1 GROUP BY id); id a 1 2001-01-01 11:00:00.123456 2 2001-01-01 11:01:00.123456 DROP TABLE t1; # # Testing VIEW # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); CREATE VIEW v1 AS SELECT a FROM t1; SELECT * FROM v1 WHERE a='2001-01-01 00:00:00.123456'; a 2001-01-01 00:00:00.123456 SELECT MIN(a), MAX(a) FROM v1; MIN(a) MAX(a) 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; CREATE VIEW v1 AS SELECT MAX(a) AS a FROM t1; SELECT * FROM v1; a 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a=(SELECT a FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; DROP TABLE t1; # # Testing that CAST from various fields to DATETIME rounds. # This tests Field::get_date(). # CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.0000009'), ('9999-12-31 23:59:59.9'), ('2001-01-01 10:10:10.9999994'), ('2001-01-01 10:10:10.9999995'); SELECT a, CAST(a AS DATETIME), CAST(a AS DATETIME(6)) FROM t1; a CAST(a AS DATETIME) CAST(a AS DATETIME(6)) 9999-12-31 23:59:59.0000009 9999-12-31 23:59:59 9999-12-31 23:59:59.000000 9999-12-31 23:59:59.9 9999-12-31 23:59:59 9999-12-31 23:59:59.900000 2001-01-01 10:10:10.9999994 2001-01-01 10:10:10 2001-01-01 10:10:10.999999 2001-01-01 10:10:10.9999995 2001-01-01 10:10:10 2001-01-01 10:10:10.999999 Warnings: Note 1292 Truncated incorrect datetime value: '9999-12-31 23:59:59.0000009' Note 1292 Truncated incorrect datetime value: '9999-12-31 23:59:59.0000009' Note 1292 Truncated incorrect datetime value: '2001-01-01 10:10:10.9999994' Note 1292 Truncated incorrect datetime value: '2001-01-01 10:10:10.9999994' Note 1292 Truncated incorrect datetime value: '2001-01-01 10:10:10.9999995' Note 1292 Truncated incorrect datetime value: '2001-01-01 10:10:10.9999995' DROP TABLE t1; CREATE TABLE t1 (a DECIMAL(30, 7)); INSERT INTO t1 VALUES (99991231235959.0000009), (99991231235959.9), (20010101101010.9999994), (20010101101010.9999995); SELECT a, CAST(a AS DATETIME), CAST(a AS DATETIME(6)) FROM t1; a CAST(a AS DATETIME) CAST(a AS DATETIME(6)) 99991231235959.0000009 9999-12-31 23:59:59 9999-12-31 23:59:59.000000 99991231235959.9000000 9999-12-31 23:59:59 9999-12-31 23:59:59.900000 20010101101010.9999994 2001-01-01 10:10:10 2001-01-01 10:10:10.999999 20010101101010.9999995 2001-01-01 10:10:10 2001-01-01 10:10:10.999999 Warnings: Note 1292 Truncated incorrect datetime value: '99991231235959.0000009' Note 1292 Truncated incorrect datetime value: '99991231235959.0000009' Note 1292 Truncated incorrect datetime value: '99991231235959.9000000' Note 1292 Truncated incorrect datetime value: '99991231235959.9000000' Note 1292 Truncated incorrect datetime value: '20010101101010.9999994' Note 1292 Truncated incorrect datetime value: '20010101101010.9999994' Note 1292 Truncated incorrect datetime value: '20010101101010.9999995' Note 1292 Truncated incorrect datetime value: '20010101101010.9999995' DROP TABLE t1; # # Testing rounding with CAST # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999990'); SELECT a, CAST(a AS DATETIME(5)) FROM t1; a CAST(a AS DATETIME(5)) 2001-01-01 10:10:10.999999 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999998 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999997 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999996 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999995 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999994 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999993 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999992 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999991 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999990 2001-01-01 10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(5)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99990'); SELECT a, CAST(a AS DATETIME(4)) FROM t1; a CAST(a AS DATETIME(4)) 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99998 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99997 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99996 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99995 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99994 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99993 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99992 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99991 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99990 2001-01-01 10:10:10.9999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(4)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9990'); SELECT a, CAST(a AS DATETIME(3)) FROM t1; a CAST(a AS DATETIME(3)) 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9998 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9997 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9996 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9995 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9994 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9993 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9992 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9991 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9990 2001-01-01 10:10:10.999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(3)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.990'); SELECT a, CAST(a AS DATETIME(2)) FROM t1; a CAST(a AS DATETIME(2)) 2001-01-01 10:10:10.999 2001-01-01 10:10:10.99 2001-01-01 10:10:10.998 2001-01-01 10:10:10.99 2001-01-01 10:10:10.997 2001-01-01 10:10:10.99 2001-01-01 10:10:10.996 2001-01-01 10:10:10.99 2001-01-01 10:10:10.995 2001-01-01 10:10:10.99 2001-01-01 10:10:10.994 2001-01-01 10:10:10.99 2001-01-01 10:10:10.993 2001-01-01 10:10:10.99 2001-01-01 10:10:10.992 2001-01-01 10:10:10.99 2001-01-01 10:10:10.991 2001-01-01 10:10:10.99 2001-01-01 10:10:10.990 2001-01-01 10:10:10.99 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(2)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.98'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.97'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.96'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.95'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.94'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.93'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.92'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.91'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.90'); SELECT a, CAST(a AS DATETIME(1)) FROM t1; a CAST(a AS DATETIME(1)) 2001-01-01 10:10:10.99 2001-01-01 10:10:10.9 2001-01-01 10:10:10.98 2001-01-01 10:10:10.9 2001-01-01 10:10:10.97 2001-01-01 10:10:10.9 2001-01-01 10:10:10.96 2001-01-01 10:10:10.9 2001-01-01 10:10:10.95 2001-01-01 10:10:10.9 2001-01-01 10:10:10.94 2001-01-01 10:10:10.9 2001-01-01 10:10:10.93 2001-01-01 10:10:10.9 2001-01-01 10:10:10.92 2001-01-01 10:10:10.9 2001-01-01 10:10:10.91 2001-01-01 10:10:10.9 2001-01-01 10:10:10.90 2001-01-01 10:10:10.9 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(1)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.8'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.7'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.6'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.5'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.4'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.3'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.2'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.1'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.0'); SELECT a, CAST(a AS DATETIME) FROM t1; a CAST(a AS DATETIME) 2001-01-01 10:10:10.9 2001-01-01 10:10:10 2001-01-01 10:10:10.8 2001-01-01 10:10:10 2001-01-01 10:10:10.7 2001-01-01 10:10:10 2001-01-01 10:10:10.6 2001-01-01 10:10:10 2001-01-01 10:10:10.5 2001-01-01 10:10:10 2001-01-01 10:10:10.4 2001-01-01 10:10:10 2001-01-01 10:10:10.3 2001-01-01 10:10:10 2001-01-01 10:10:10.2 2001-01-01 10:10:10 2001-01-01 10:10:10.1 2001-01-01 10:10:10 2001-01-01 10:10:10.0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing that Item::get_date() rounds # SELECT CAST('2001-01-01 10:10:10.9999994' AS DATETIME), CAST('2001-01-01 10:10:10.9999995' AS DATETIME), CAST('2001-01-01 10:10:10.9999994' AS DATETIME(6)), CAST('2001-01-01 10:10:10.9999995' AS DATETIME(6)), CAST(20010101101010.9999994 AS DATETIME), CAST(20010101101010.9999995 AS DATETIME), CAST(20010101101010.9999994 AS DATETIME(6)), CAST(20010101101010.9999995 AS DATETIME(6)); CAST('2001-01-01 10:10:10.9999994' AS DATETIME) 2001-01-01 10:10:10 CAST('2001-01-01 10:10:10.9999995' AS DATETIME) 2001-01-01 10:10:10 CAST('2001-01-01 10:10:10.9999994' AS DATETIME(6)) 2001-01-01 10:10:10.999999 CAST('2001-01-01 10:10:10.9999995' AS DATETIME(6)) 2001-01-01 10:10:10.999999 CAST(20010101101010.9999994 AS DATETIME) 2001-01-01 10:10:10 CAST(20010101101010.9999995 AS DATETIME) 2001-01-01 10:10:10 CAST(20010101101010.9999994 AS DATETIME(6)) 2001-01-01 10:10:10.999999 CAST(20010101101010.9999995 AS DATETIME(6)) 2001-01-01 10:10:10.999999 Warnings: Level Note Code 1292 Message Truncated incorrect datetime value: '2001-01-01 10:10:10.9999994' Level Note Code 1292 Message Truncated incorrect datetime value: '2001-01-01 10:10:10.9999995' Level Note Code 1292 Message Truncated incorrect datetime value: '2001-01-01 10:10:10.9999994' Level Note Code 1292 Message Truncated incorrect datetime value: '2001-01-01 10:10:10.9999995' # # Testing that comparison rounds # CREATE TABLE t1 (t0 DATETIME, t6 DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00', '2001-01-01 00:00:00.999999'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01', '2001-01-01 00:00:01.000000'); SELECT t0 FROM t1 WHERE t6='2001-01-01 00:00:00.9999998'; t0 2001-01-01 00:00:00 Warnings: Note 1292 Truncated incorrect datetime value: '2001-01-01 00:00:00.9999998' SELECT t6 FROM t1 WHERE t6='2001-01-01 00:00:00.9999998'; t6 2001-01-01 00:00:00.999999 Warnings: Note 1292 Truncated incorrect datetime value: '2001-01-01 00:00:00.9999998' DROP TABLE t1; # # Testing that EXTRACT rounds # SELECT EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999994'), EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999995'), EXTRACT(MICROSECOND FROM 20010101000000.9999994), EXTRACT(MICROSECOND FROM 20010101000000.9999995); EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999994') 999999 EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999995') 999999 EXTRACT(MICROSECOND FROM 20010101000000.9999994) 999999 EXTRACT(MICROSECOND FROM 20010101000000.9999995) 999999 Warnings: Level Note Code 1292 Message Truncated incorrect time value: '2001-01-01 00:00:00.9999994' Level Note Code 1292 Message Truncated incorrect time value: '2001-01-01 00:00:00.9999995' # # Testing that TIMESTAMP(0) is a synonym to non-fractional TIMESTAMP # CREATE TABLE t1 (a TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing internal representation format for DATETIME(N) # SET time_zone='+00:00'; CREATE TABLE t1 (a6 VARCHAR(32)); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000001'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000002'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000003'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000004'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000005'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000006'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000007'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000008'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000009'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000010'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000011'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000012'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000013'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000014'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000015'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000016'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000099'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.009999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.099999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.100000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.900000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.990000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999900'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999990'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000001'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000002'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000003'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000004'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000005'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000006'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000007'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000008'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000009'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000010'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000011'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000012'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000013'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000014'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000015'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000016'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000099'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.009999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.090000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.099999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.100000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.900000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.990000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999900'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999990'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000001'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000008'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000015'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000016'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000099'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.009999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.099999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.100000'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.900000'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.999999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000001'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000008'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000015'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000016'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000099'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.009999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.099999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.100000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.900000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.990000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999900'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999990'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000001'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000008'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000015'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000016'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000099'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.009999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.099999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.100000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.900000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.990000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999900'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999990'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:59.000000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000001'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000008'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000015'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000016'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000099'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.009999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.099999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.100000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.900000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.990000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999900'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999990'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:59.000000'); ALTER TABLE t1 ADD a0 VARCHAR(32), ADD a1 VARCHAR(32), ADD a2 VARCHAR(32), ADD a3 VARCHAR(32), ADD a4 VARCHAR(32), ADD a5 VARCHAR(32), ADD d0 TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0), ADD d1 TIMESTAMP(1), ADD d2 TIMESTAMP(2), ADD d3 TIMESTAMP(3), ADD d4 TIMESTAMP(4), ADD d5 TIMESTAMP(5), ADD d6 TIMESTAMP(6); UPDATE t1 SET a0= LEFT(a6, LENGTH(a6) - 6), a1= LEFT(a6, LENGTH(a6) - 5), a2= LEFT(a6, LENGTH(a6) - 4), a3= LEFT(a6, LENGTH(a6) - 3), a4= LEFT(a6, LENGTH(a6) - 2), a5= LEFT(a6, LENGTH(a6) - 1); UPDATE t1 SET d0= a0, d1= a1, d2= a2, d3= a3, d4= a4, d5= a5, d6= a6; SELECT a6, d6, HEX(WEIGHT_STRING(d6)) FROM t1 ORDER BY d6; a6 d6 HEX(WEIGHT_STRING(d6)) 1970-01-01 00:00:01.000000 1970-01-01 00:00:01.000000 313937302D30312D30312030303A30303A30312E303030303030 1970-01-01 00:00:01.000001 1970-01-01 00:00:01.000001 313937302D30312D30312030303A30303A30312E303030303031 1970-01-01 00:00:01.000002 1970-01-01 00:00:01.000002 313937302D30312D30312030303A30303A30312E303030303032 1970-01-01 00:00:01.000003 1970-01-01 00:00:01.000003 313937302D30312D30312030303A30303A30312E303030303033 1970-01-01 00:00:01.000004 1970-01-01 00:00:01.000004 313937302D30312D30312030303A30303A30312E303030303034 1970-01-01 00:00:01.000005 1970-01-01 00:00:01.000005 313937302D30312D30312030303A30303A30312E303030303035 1970-01-01 00:00:01.000006 1970-01-01 00:00:01.000006 313937302D30312D30312030303A30303A30312E303030303036 1970-01-01 00:00:01.000007 1970-01-01 00:00:01.000007 313937302D30312D30312030303A30303A30312E303030303037 1970-01-01 00:00:01.000008 1970-01-01 00:00:01.000008 313937302D30312D30312030303A30303A30312E303030303038 1970-01-01 00:00:01.000009 1970-01-01 00:00:01.000009 313937302D30312D30312030303A30303A30312E303030303039 1970-01-01 00:00:01.000010 1970-01-01 00:00:01.000010 313937302D30312D30312030303A30303A30312E303030303130 1970-01-01 00:00:01.000011 1970-01-01 00:00:01.000011 313937302D30312D30312030303A30303A30312E303030303131 1970-01-01 00:00:01.000012 1970-01-01 00:00:01.000012 313937302D30312D30312030303A30303A30312E303030303132 1970-01-01 00:00:01.000013 1970-01-01 00:00:01.000013 313937302D30312D30312030303A30303A30312E303030303133 1970-01-01 00:00:01.000014 1970-01-01 00:00:01.000014 313937302D30312D30312030303A30303A30312E303030303134 1970-01-01 00:00:01.000015 1970-01-01 00:00:01.000015 313937302D30312D30312030303A30303A30312E303030303135 1970-01-01 00:00:01.000016 1970-01-01 00:00:01.000016 313937302D30312D30312030303A30303A30312E303030303136 1970-01-01 00:00:01.000099 1970-01-01 00:00:01.000099 313937302D30312D30312030303A30303A30312E303030303939 1970-01-01 00:00:01.000999 1970-01-01 00:00:01.000999 313937302D30312D30312030303A30303A30312E303030393939 1970-01-01 00:00:01.009999 1970-01-01 00:00:01.009999 313937302D30312D30312030303A30303A30312E303039393939 1970-01-01 00:00:01.099999 1970-01-01 00:00:01.099999 313937302D30312D30312030303A30303A30312E303939393939 1970-01-01 00:00:01.100000 1970-01-01 00:00:01.100000 313937302D30312D30312030303A30303A30312E313030303030 1970-01-01 00:00:01.900000 1970-01-01 00:00:01.900000 313937302D30312D30312030303A30303A30312E393030303030 1970-01-01 00:00:01.990000 1970-01-01 00:00:01.990000 313937302D30312D30312030303A30303A30312E393930303030 1970-01-01 00:00:01.999000 1970-01-01 00:00:01.999000 313937302D30312D30312030303A30303A30312E393939303030 1970-01-01 00:00:01.999900 1970-01-01 00:00:01.999900 313937302D30312D30312030303A30303A30312E393939393030 1970-01-01 00:00:01.999990 1970-01-01 00:00:01.999990 313937302D30312D30312030303A30303A30312E393939393930 1970-01-01 00:00:01.999999 1970-01-01 00:00:01.999999 313937302D30312D30312030303A30303A30312E393939393939 1970-01-01 00:00:02.000000 1970-01-01 00:00:02.000000 313937302D30312D30312030303A30303A30322E303030303030 1970-01-01 00:00:02.000001 1970-01-01 00:00:02.000001 313937302D30312D30312030303A30303A30322E303030303031 1970-01-01 00:00:02.000002 1970-01-01 00:00:02.000002 313937302D30312D30312030303A30303A30322E303030303032 1970-01-01 00:00:02.000003 1970-01-01 00:00:02.000003 313937302D30312D30312030303A30303A30322E303030303033 1970-01-01 00:00:02.000004 1970-01-01 00:00:02.000004 313937302D30312D30312030303A30303A30322E303030303034 1970-01-01 00:00:02.000005 1970-01-01 00:00:02.000005 313937302D30312D30312030303A30303A30322E303030303035 1970-01-01 00:00:02.000006 1970-01-01 00:00:02.000006 313937302D30312D30312030303A30303A30322E303030303036 1970-01-01 00:00:02.000007 1970-01-01 00:00:02.000007 313937302D30312D30312030303A30303A30322E303030303037 1970-01-01 00:00:02.000008 1970-01-01 00:00:02.000008 313937302D30312D30312030303A30303A30322E303030303038 1970-01-01 00:00:02.000009 1970-01-01 00:00:02.000009 313937302D30312D30312030303A30303A30322E303030303039 1970-01-01 00:00:02.000010 1970-01-01 00:00:02.000010 313937302D30312D30312030303A30303A30322E303030303130 1970-01-01 00:00:02.000011 1970-01-01 00:00:02.000011 313937302D30312D30312030303A30303A30322E303030303131 1970-01-01 00:00:02.000012 1970-01-01 00:00:02.000012 313937302D30312D30312030303A30303A30322E303030303132 1970-01-01 00:00:02.000013 1970-01-01 00:00:02.000013 313937302D30312D30312030303A30303A30322E303030303133 1970-01-01 00:00:02.000014 1970-01-01 00:00:02.000014 313937302D30312D30312030303A30303A30322E303030303134 1970-01-01 00:00:02.000015 1970-01-01 00:00:02.000015 313937302D30312D30312030303A30303A30322E303030303135 1970-01-01 00:00:02.000016 1970-01-01 00:00:02.000016 313937302D30312D30312030303A30303A30322E303030303136 1970-01-01 00:00:02.000099 1970-01-01 00:00:02.000099 313937302D30312D30312030303A30303A30322E303030303939 1970-01-01 00:00:02.000999 1970-01-01 00:00:02.000999 313937302D30312D30312030303A30303A30322E303030393939 1970-01-01 00:00:02.009999 1970-01-01 00:00:02.009999 313937302D30312D30312030303A30303A30322E303039393939 1970-01-01 00:00:02.090000 1970-01-01 00:00:02.090000 313937302D30312D30312030303A30303A30322E303930303030 1970-01-01 00:00:02.099999 1970-01-01 00:00:02.099999 313937302D30312D30312030303A30303A30322E303939393939 1970-01-01 00:00:02.100000 1970-01-01 00:00:02.100000 313937302D30312D30312030303A30303A30322E313030303030 1970-01-01 00:00:02.900000 1970-01-01 00:00:02.900000 313937302D30312D30312030303A30303A30322E393030303030 1970-01-01 00:00:02.990000 1970-01-01 00:00:02.990000 313937302D30312D30312030303A30303A30322E393930303030 1970-01-01 00:00:02.999000 1970-01-01 00:00:02.999000 313937302D30312D30312030303A30303A30322E393939303030 1970-01-01 00:00:02.999900 1970-01-01 00:00:02.999900 313937302D30312D30312030303A30303A30322E393939393030 1970-01-01 00:00:02.999990 1970-01-01 00:00:02.999990 313937302D30312D30312030303A30303A30322E393939393930 1970-01-01 00:00:02.999999 1970-01-01 00:00:02.999999 313937302D30312D30312030303A30303A30322E393939393939 1970-01-01 00:01:00.000001 1970-01-01 00:01:00.000001 313937302D30312D30312030303A30313A30302E303030303031 1970-01-01 00:01:00.000008 1970-01-01 00:01:00.000008 313937302D30312D30312030303A30313A30302E303030303038 1970-01-01 00:01:00.000015 1970-01-01 00:01:00.000015 313937302D30312D30312030303A30313A30302E303030303135 1970-01-01 00:01:00.000016 1970-01-01 00:01:00.000016 313937302D30312D30312030303A30313A30302E303030303136 1970-01-01 00:01:00.000099 1970-01-01 00:01:00.000099 313937302D30312D30312030303A30313A30302E303030303939 1970-01-01 00:01:00.000999 1970-01-01 00:01:00.000999 313937302D30312D30312030303A30313A30302E303030393939 1970-01-01 00:01:00.009999 1970-01-01 00:01:00.009999 313937302D30312D30312030303A30313A30302E303039393939 1970-01-01 00:01:00.099999 1970-01-01 00:01:00.099999 313937302D30312D30312030303A30313A30302E303939393939 1970-01-01 00:01:00.100000 1970-01-01 00:01:00.100000 313937302D30312D30312030303A30313A30302E313030303030 1970-01-01 00:01:00.900000 1970-01-01 00:01:00.900000 313937302D30312D30312030303A30313A30302E393030303030 1970-01-01 00:01:00.999999 1970-01-01 00:01:00.999999 313937302D30312D30312030303A30313A30302E393939393939 1970-01-01 01:00:00.000001 1970-01-01 01:00:00.000001 313937302D30312D30312030313A30303A30302E303030303031 1970-01-01 01:00:00.000008 1970-01-01 01:00:00.000008 313937302D30312D30312030313A30303A30302E303030303038 1970-01-01 01:00:00.000015 1970-01-01 01:00:00.000015 313937302D30312D30312030313A30303A30302E303030303135 1970-01-01 01:00:00.000016 1970-01-01 01:00:00.000016 313937302D30312D30312030313A30303A30302E303030303136 1970-01-01 01:00:00.000099 1970-01-01 01:00:00.000099 313937302D30312D30312030313A30303A30302E303030303939 1970-01-01 01:00:00.000999 1970-01-01 01:00:00.000999 313937302D30312D30312030313A30303A30302E303030393939 1970-01-01 01:00:00.009999 1970-01-01 01:00:00.009999 313937302D30312D30312030313A30303A30302E303039393939 1970-01-01 01:00:00.099999 1970-01-01 01:00:00.099999 313937302D30312D30312030313A30303A30302E303939393939 1970-01-01 01:00:00.100000 1970-01-01 01:00:00.100000 313937302D30312D30312030313A30303A30302E313030303030 1970-01-01 01:00:00.900000 1970-01-01 01:00:00.900000 313937302D30312D30312030313A30303A30302E393030303030 1970-01-01 01:00:00.990000 1970-01-01 01:00:00.990000 313937302D30312D30312030313A30303A30302E393930303030 1970-01-01 01:00:00.999000 1970-01-01 01:00:00.999000 313937302D30312D30312030313A30303A30302E393939303030 1970-01-01 01:00:00.999900 1970-01-01 01:00:00.999900 313937302D30312D30312030313A30303A30302E393939393030 1970-01-01 01:00:00.999990 1970-01-01 01:00:00.999990 313937302D30312D30312030313A30303A30302E393939393930 1970-01-01 01:00:00.999999 1970-01-01 01:00:00.999999 313937302D30312D30312030313A30303A30302E393939393939 2001-01-01 23:59:58.000001 2001-01-01 23:59:58.000001 323030312D30312D30312032333A35393A35382E303030303031 2001-01-01 23:59:58.000008 2001-01-01 23:59:58.000008 323030312D30312D30312032333A35393A35382E303030303038 2001-01-01 23:59:58.000015 2001-01-01 23:59:58.000015 323030312D30312D30312032333A35393A35382E303030303135 2001-01-01 23:59:58.000016 2001-01-01 23:59:58.000016 323030312D30312D30312032333A35393A35382E303030303136 2001-01-01 23:59:58.000099 2001-01-01 23:59:58.000099 323030312D30312D30312032333A35393A35382E303030303939 2001-01-01 23:59:58.000999 2001-01-01 23:59:58.000999 323030312D30312D30312032333A35393A35382E303030393939 2001-01-01 23:59:58.009999 2001-01-01 23:59:58.009999 323030312D30312D30312032333A35393A35382E303039393939 2001-01-01 23:59:58.099999 2001-01-01 23:59:58.099999 323030312D30312D30312032333A35393A35382E303939393939 2001-01-01 23:59:58.100000 2001-01-01 23:59:58.100000 323030312D30312D30312032333A35393A35382E313030303030 2001-01-01 23:59:58.900000 2001-01-01 23:59:58.900000 323030312D30312D30312032333A35393A35382E393030303030 2001-01-01 23:59:58.990000 2001-01-01 23:59:58.990000 323030312D30312D30312032333A35393A35382E393930303030 2001-01-01 23:59:58.999000 2001-01-01 23:59:58.999000 323030312D30312D30312032333A35393A35382E393939303030 2001-01-01 23:59:58.999900 2001-01-01 23:59:58.999900 323030312D30312D30312032333A35393A35382E393939393030 2001-01-01 23:59:58.999990 2001-01-01 23:59:58.999990 323030312D30312D30312032333A35393A35382E393939393930 2001-01-01 23:59:58.999999 2001-01-01 23:59:58.999999 323030312D30312D30312032333A35393A35382E393939393939 2001-01-01 23:59:59.000000 2001-01-01 23:59:59.000000 323030312D30312D30312032333A35393A35392E303030303030 2037-01-01 23:59:58.000001 2037-01-01 23:59:58.000001 323033372D30312D30312032333A35393A35382E303030303031 2037-01-01 23:59:58.000008 2037-01-01 23:59:58.000008 323033372D30312D30312032333A35393A35382E303030303038 2037-01-01 23:59:58.000015 2037-01-01 23:59:58.000015 323033372D30312D30312032333A35393A35382E303030303135 2037-01-01 23:59:58.000016 2037-01-01 23:59:58.000016 323033372D30312D30312032333A35393A35382E303030303136 2037-01-01 23:59:58.000099 2037-01-01 23:59:58.000099 323033372D30312D30312032333A35393A35382E303030303939 2037-01-01 23:59:58.000999 2037-01-01 23:59:58.000999 323033372D30312D30312032333A35393A35382E303030393939 2037-01-01 23:59:58.009999 2037-01-01 23:59:58.009999 323033372D30312D30312032333A35393A35382E303039393939 2037-01-01 23:59:58.099999 2037-01-01 23:59:58.099999 323033372D30312D30312032333A35393A35382E303939393939 2037-01-01 23:59:58.100000 2037-01-01 23:59:58.100000 323033372D30312D30312032333A35393A35382E313030303030 2037-01-01 23:59:58.900000 2037-01-01 23:59:58.900000 323033372D30312D30312032333A35393A35382E393030303030 2037-01-01 23:59:58.990000 2037-01-01 23:59:58.990000 323033372D30312D30312032333A35393A35382E393930303030 2037-01-01 23:59:58.999000 2037-01-01 23:59:58.999000 323033372D30312D30312032333A35393A35382E393939303030 2037-01-01 23:59:58.999900 2037-01-01 23:59:58.999900 323033372D30312D30312032333A35393A35382E393939393030 2037-01-01 23:59:58.999990 2037-01-01 23:59:58.999990 323033372D30312D30312032333A35393A35382E393939393930 2037-01-01 23:59:58.999999 2037-01-01 23:59:58.999999 323033372D30312D30312032333A35393A35382E393939393939 2037-01-01 23:59:59.000000 2037-01-01 23:59:59.000000 323033372D30312D30312032333A35393A35392E303030303030 SELECT a5, d5, HEX(WEIGHT_STRING(d5)) FROM t1 ORDER BY d5, a6; a5 d5 HEX(WEIGHT_STRING(d5)) 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 313937302D30312D30312030303A30303A30312E3030303030 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 313937302D30312D30312030303A30303A30312E3030303031 1970-01-01 00:00:01.00009 1970-01-01 00:00:01.00009 313937302D30312D30312030303A30303A30312E3030303039 1970-01-01 00:00:01.00099 1970-01-01 00:00:01.00099 313937302D30312D30312030303A30303A30312E3030303939 1970-01-01 00:00:01.00999 1970-01-01 00:00:01.00999 313937302D30312D30312030303A30303A30312E3030393939 1970-01-01 00:00:01.09999 1970-01-01 00:00:01.09999 313937302D30312D30312030303A30303A30312E3039393939 1970-01-01 00:00:01.10000 1970-01-01 00:00:01.10000 313937302D30312D30312030303A30303A30312E3130303030 1970-01-01 00:00:01.90000 1970-01-01 00:00:01.90000 313937302D30312D30312030303A30303A30312E3930303030 1970-01-01 00:00:01.99000 1970-01-01 00:00:01.99000 313937302D30312D30312030303A30303A30312E3939303030 1970-01-01 00:00:01.99900 1970-01-01 00:00:01.99900 313937302D30312D30312030303A30303A30312E3939393030 1970-01-01 00:00:01.99990 1970-01-01 00:00:01.99990 313937302D30312D30312030303A30303A30312E3939393930 1970-01-01 00:00:01.99999 1970-01-01 00:00:01.99999 313937302D30312D30312030303A30303A30312E3939393939 1970-01-01 00:00:01.99999 1970-01-01 00:00:01.99999 313937302D30312D30312030303A30303A30312E3939393939 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 313937302D30312D30312030303A30303A30322E3030303030 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 313937302D30312D30312030303A30303A30322E3030303031 1970-01-01 00:00:02.00009 1970-01-01 00:00:02.00009 313937302D30312D30312030303A30303A30322E3030303039 1970-01-01 00:00:02.00099 1970-01-01 00:00:02.00099 313937302D30312D30312030303A30303A30322E3030303939 1970-01-01 00:00:02.00999 1970-01-01 00:00:02.00999 313937302D30312D30312030303A30303A30322E3030393939 1970-01-01 00:00:02.09000 1970-01-01 00:00:02.09000 313937302D30312D30312030303A30303A30322E3039303030 1970-01-01 00:00:02.09999 1970-01-01 00:00:02.09999 313937302D30312D30312030303A30303A30322E3039393939 1970-01-01 00:00:02.10000 1970-01-01 00:00:02.10000 313937302D30312D30312030303A30303A30322E3130303030 1970-01-01 00:00:02.90000 1970-01-01 00:00:02.90000 313937302D30312D30312030303A30303A30322E3930303030 1970-01-01 00:00:02.99000 1970-01-01 00:00:02.99000 313937302D30312D30312030303A30303A30322E3939303030 1970-01-01 00:00:02.99900 1970-01-01 00:00:02.99900 313937302D30312D30312030303A30303A30322E3939393030 1970-01-01 00:00:02.99990 1970-01-01 00:00:02.99990 313937302D30312D30312030303A30303A30322E3939393930 1970-01-01 00:00:02.99999 1970-01-01 00:00:02.99999 313937302D30312D30312030303A30303A30322E3939393939 1970-01-01 00:00:02.99999 1970-01-01 00:00:02.99999 313937302D30312D30312030303A30303A30322E3939393939 1970-01-01 00:01:00.00000 1970-01-01 00:01:00.00000 313937302D30312D30312030303A30313A30302E3030303030 1970-01-01 00:01:00.00000 1970-01-01 00:01:00.00000 313937302D30312D30312030303A30313A30302E3030303030 1970-01-01 00:01:00.00001 1970-01-01 00:01:00.00001 313937302D30312D30312030303A30313A30302E3030303031 1970-01-01 00:01:00.00001 1970-01-01 00:01:00.00001 313937302D30312D30312030303A30313A30302E3030303031 1970-01-01 00:01:00.00009 1970-01-01 00:01:00.00009 313937302D30312D30312030303A30313A30302E3030303039 1970-01-01 00:01:00.00099 1970-01-01 00:01:00.00099 313937302D30312D30312030303A30313A30302E3030303939 1970-01-01 00:01:00.00999 1970-01-01 00:01:00.00999 313937302D30312D30312030303A30313A30302E3030393939 1970-01-01 00:01:00.09999 1970-01-01 00:01:00.09999 313937302D30312D30312030303A30313A30302E3039393939 1970-01-01 00:01:00.10000 1970-01-01 00:01:00.10000 313937302D30312D30312030303A30313A30302E3130303030 1970-01-01 00:01:00.90000 1970-01-01 00:01:00.90000 313937302D30312D30312030303A30313A30302E3930303030 1970-01-01 00:01:00.99999 1970-01-01 00:01:00.99999 313937302D30312D30312030303A30313A30302E3939393939 1970-01-01 01:00:00.00000 1970-01-01 01:00:00.00000 313937302D30312D30312030313A30303A30302E3030303030 1970-01-01 01:00:00.00000 1970-01-01 01:00:00.00000 313937302D30312D30312030313A30303A30302E3030303030 1970-01-01 01:00:00.00001 1970-01-01 01:00:00.00001 313937302D30312D30312030313A30303A30302E3030303031 1970-01-01 01:00:00.00001 1970-01-01 01:00:00.00001 313937302D30312D30312030313A30303A30302E3030303031 1970-01-01 01:00:00.00009 1970-01-01 01:00:00.00009 313937302D30312D30312030313A30303A30302E3030303039 1970-01-01 01:00:00.00099 1970-01-01 01:00:00.00099 313937302D30312D30312030313A30303A30302E3030303939 1970-01-01 01:00:00.00999 1970-01-01 01:00:00.00999 313937302D30312D30312030313A30303A30302E3030393939 1970-01-01 01:00:00.09999 1970-01-01 01:00:00.09999 313937302D30312D30312030313A30303A30302E3039393939 1970-01-01 01:00:00.10000 1970-01-01 01:00:00.10000 313937302D30312D30312030313A30303A30302E3130303030 1970-01-01 01:00:00.90000 1970-01-01 01:00:00.90000 313937302D30312D30312030313A30303A30302E3930303030 1970-01-01 01:00:00.99000 1970-01-01 01:00:00.99000 313937302D30312D30312030313A30303A30302E3939303030 1970-01-01 01:00:00.99900 1970-01-01 01:00:00.99900 313937302D30312D30312030313A30303A30302E3939393030 1970-01-01 01:00:00.99990 1970-01-01 01:00:00.99990 313937302D30312D30312030313A30303A30302E3939393930 1970-01-01 01:00:00.99999 1970-01-01 01:00:00.99999 313937302D30312D30312030313A30303A30302E3939393939 1970-01-01 01:00:00.99999 1970-01-01 01:00:00.99999 313937302D30312D30312030313A30303A30302E3939393939 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 323030312D30312D30312032333A35393A35382E3030303030 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 323030312D30312D30312032333A35393A35382E3030303030 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 323030312D30312D30312032333A35393A35382E3030303031 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 323030312D30312D30312032333A35393A35382E3030303031 2001-01-01 23:59:58.00009 2001-01-01 23:59:58.00009 323030312D30312D30312032333A35393A35382E3030303039 2001-01-01 23:59:58.00099 2001-01-01 23:59:58.00099 323030312D30312D30312032333A35393A35382E3030303939 2001-01-01 23:59:58.00999 2001-01-01 23:59:58.00999 323030312D30312D30312032333A35393A35382E3030393939 2001-01-01 23:59:58.09999 2001-01-01 23:59:58.09999 323030312D30312D30312032333A35393A35382E3039393939 2001-01-01 23:59:58.10000 2001-01-01 23:59:58.10000 323030312D30312D30312032333A35393A35382E3130303030 2001-01-01 23:59:58.90000 2001-01-01 23:59:58.90000 323030312D30312D30312032333A35393A35382E3930303030 2001-01-01 23:59:58.99000 2001-01-01 23:59:58.99000 323030312D30312D30312032333A35393A35382E3939303030 2001-01-01 23:59:58.99900 2001-01-01 23:59:58.99900 323030312D30312D30312032333A35393A35382E3939393030 2001-01-01 23:59:58.99990 2001-01-01 23:59:58.99990 323030312D30312D30312032333A35393A35382E3939393930 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 323030312D30312D30312032333A35393A35382E3939393939 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 323030312D30312D30312032333A35393A35382E3939393939 2001-01-01 23:59:59.00000 2001-01-01 23:59:59.00000 323030312D30312D30312032333A35393A35392E3030303030 2037-01-01 23:59:58.00000 2037-01-01 23:59:58.00000 323033372D30312D30312032333A35393A35382E3030303030 2037-01-01 23:59:58.00000 2037-01-01 23:59:58.00000 323033372D30312D30312032333A35393A35382E3030303030 2037-01-01 23:59:58.00001 2037-01-01 23:59:58.00001 323033372D30312D30312032333A35393A35382E3030303031 2037-01-01 23:59:58.00001 2037-01-01 23:59:58.00001 323033372D30312D30312032333A35393A35382E3030303031 2037-01-01 23:59:58.00009 2037-01-01 23:59:58.00009 323033372D30312D30312032333A35393A35382E3030303039 2037-01-01 23:59:58.00099 2037-01-01 23:59:58.00099 323033372D30312D30312032333A35393A35382E3030303939 2037-01-01 23:59:58.00999 2037-01-01 23:59:58.00999 323033372D30312D30312032333A35393A35382E3030393939 2037-01-01 23:59:58.09999 2037-01-01 23:59:58.09999 323033372D30312D30312032333A35393A35382E3039393939 2037-01-01 23:59:58.10000 2037-01-01 23:59:58.10000 323033372D30312D30312032333A35393A35382E3130303030 2037-01-01 23:59:58.90000 2037-01-01 23:59:58.90000 323033372D30312D30312032333A35393A35382E3930303030 2037-01-01 23:59:58.99000 2037-01-01 23:59:58.99000 323033372D30312D30312032333A35393A35382E3939303030 2037-01-01 23:59:58.99900 2037-01-01 23:59:58.99900 323033372D30312D30312032333A35393A35382E3939393030 2037-01-01 23:59:58.99990 2037-01-01 23:59:58.99990 323033372D30312D30312032333A35393A35382E3939393930 2037-01-01 23:59:58.99999 2037-01-01 23:59:58.99999 323033372D30312D30312032333A35393A35382E3939393939 2037-01-01 23:59:58.99999 2037-01-01 23:59:58.99999 323033372D30312D30312032333A35393A35382E3939393939 2037-01-01 23:59:59.00000 2037-01-01 23:59:59.00000 323033372D30312D30312032333A35393A35392E3030303030 SELECT a4, d4, HEX(WEIGHT_STRING(d4)) FROM t1 ORDER BY d4, a6; a4 d4 HEX(WEIGHT_STRING(d4)) 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 313937302D30312D30312030303A30303A30312E30303030 1970-01-01 00:00:01.0009 1970-01-01 00:00:01.0009 313937302D30312D30312030303A30303A30312E30303039 1970-01-01 00:00:01.0099 1970-01-01 00:00:01.0099 313937302D30312D30312030303A30303A30312E30303939 1970-01-01 00:00:01.0999 1970-01-01 00:00:01.0999 313937302D30312D30312030303A30303A30312E30393939 1970-01-01 00:00:01.1000 1970-01-01 00:00:01.1000 313937302D30312D30312030303A30303A30312E31303030 1970-01-01 00:00:01.9000 1970-01-01 00:00:01.9000 313937302D30312D30312030303A30303A30312E39303030 1970-01-01 00:00:01.9900 1970-01-01 00:00:01.9900 313937302D30312D30312030303A30303A30312E39393030 1970-01-01 00:00:01.9990 1970-01-01 00:00:01.9990 313937302D30312D30312030303A30303A30312E39393930 1970-01-01 00:00:01.9999 1970-01-01 00:00:01.9999 313937302D30312D30312030303A30303A30312E39393939 1970-01-01 00:00:01.9999 1970-01-01 00:00:01.9999 313937302D30312D30312030303A30303A30312E39393939 1970-01-01 00:00:01.9999 1970-01-01 00:00:01.9999 313937302D30312D30312030303A30303A30312E39393939 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 313937302D30312D30312030303A30303A30322E30303030 1970-01-01 00:00:02.0009 1970-01-01 00:00:02.0009 313937302D30312D30312030303A30303A30322E30303039 1970-01-01 00:00:02.0099 1970-01-01 00:00:02.0099 313937302D30312D30312030303A30303A30322E30303939 1970-01-01 00:00:02.0900 1970-01-01 00:00:02.0900 313937302D30312D30312030303A30303A30322E30393030 1970-01-01 00:00:02.0999 1970-01-01 00:00:02.0999 313937302D30312D30312030303A30303A30322E30393939 1970-01-01 00:00:02.1000 1970-01-01 00:00:02.1000 313937302D30312D30312030303A30303A30322E31303030 1970-01-01 00:00:02.9000 1970-01-01 00:00:02.9000 313937302D30312D30312030303A30303A30322E39303030 1970-01-01 00:00:02.9900 1970-01-01 00:00:02.9900 313937302D30312D30312030303A30303A30322E39393030 1970-01-01 00:00:02.9990 1970-01-01 00:00:02.9990 313937302D30312D30312030303A30303A30322E39393930 1970-01-01 00:00:02.9999 1970-01-01 00:00:02.9999 313937302D30312D30312030303A30303A30322E39393939 1970-01-01 00:00:02.9999 1970-01-01 00:00:02.9999 313937302D30312D30312030303A30303A30322E39393939 1970-01-01 00:00:02.9999 1970-01-01 00:00:02.9999 313937302D30312D30312030303A30303A30322E39393939 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 313937302D30312D30312030303A30313A30302E30303030 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 313937302D30312D30312030303A30313A30302E30303030 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 313937302D30312D30312030303A30313A30302E30303030 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 313937302D30312D30312030303A30313A30302E30303030 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 313937302D30312D30312030303A30313A30302E30303030 1970-01-01 00:01:00.0009 1970-01-01 00:01:00.0009 313937302D30312D30312030303A30313A30302E30303039 1970-01-01 00:01:00.0099 1970-01-01 00:01:00.0099 313937302D30312D30312030303A30313A30302E30303939 1970-01-01 00:01:00.0999 1970-01-01 00:01:00.0999 313937302D30312D30312030303A30313A30302E30393939 1970-01-01 00:01:00.1000 1970-01-01 00:01:00.1000 313937302D30312D30312030303A30313A30302E31303030 1970-01-01 00:01:00.9000 1970-01-01 00:01:00.9000 313937302D30312D30312030303A30313A30302E39303030 1970-01-01 00:01:00.9999 1970-01-01 00:01:00.9999 313937302D30312D30312030303A30313A30302E39393939 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 313937302D30312D30312030313A30303A30302E30303030 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 313937302D30312D30312030313A30303A30302E30303030 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 313937302D30312D30312030313A30303A30302E30303030 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 313937302D30312D30312030313A30303A30302E30303030 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 313937302D30312D30312030313A30303A30302E30303030 1970-01-01 01:00:00.0009 1970-01-01 01:00:00.0009 313937302D30312D30312030313A30303A30302E30303039 1970-01-01 01:00:00.0099 1970-01-01 01:00:00.0099 313937302D30312D30312030313A30303A30302E30303939 1970-01-01 01:00:00.0999 1970-01-01 01:00:00.0999 313937302D30312D30312030313A30303A30302E30393939 1970-01-01 01:00:00.1000 1970-01-01 01:00:00.1000 313937302D30312D30312030313A30303A30302E31303030 1970-01-01 01:00:00.9000 1970-01-01 01:00:00.9000 313937302D30312D30312030313A30303A30302E39303030 1970-01-01 01:00:00.9900 1970-01-01 01:00:00.9900 313937302D30312D30312030313A30303A30302E39393030 1970-01-01 01:00:00.9990 1970-01-01 01:00:00.9990 313937302D30312D30312030313A30303A30302E39393930 1970-01-01 01:00:00.9999 1970-01-01 01:00:00.9999 313937302D30312D30312030313A30303A30302E39393939 1970-01-01 01:00:00.9999 1970-01-01 01:00:00.9999 313937302D30312D30312030313A30303A30302E39393939 1970-01-01 01:00:00.9999 1970-01-01 01:00:00.9999 313937302D30312D30312030313A30303A30302E39393939 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 323030312D30312D30312032333A35393A35382E30303030 2001-01-01 23:59:58.0009 2001-01-01 23:59:58.0009 323030312D30312D30312032333A35393A35382E30303039 2001-01-01 23:59:58.0099 2001-01-01 23:59:58.0099 323030312D30312D30312032333A35393A35382E30303939 2001-01-01 23:59:58.0999 2001-01-01 23:59:58.0999 323030312D30312D30312032333A35393A35382E30393939 2001-01-01 23:59:58.1000 2001-01-01 23:59:58.1000 323030312D30312D30312032333A35393A35382E31303030 2001-01-01 23:59:58.9000 2001-01-01 23:59:58.9000 323030312D30312D30312032333A35393A35382E39303030 2001-01-01 23:59:58.9900 2001-01-01 23:59:58.9900 323030312D30312D30312032333A35393A35382E39393030 2001-01-01 23:59:58.9990 2001-01-01 23:59:58.9990 323030312D30312D30312032333A35393A35382E39393930 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 323030312D30312D30312032333A35393A35382E39393939 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 323030312D30312D30312032333A35393A35382E39393939 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 323030312D30312D30312032333A35393A35382E39393939 2001-01-01 23:59:59.0000 2001-01-01 23:59:59.0000 323030312D30312D30312032333A35393A35392E30303030 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 323033372D30312D30312032333A35393A35382E30303030 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 323033372D30312D30312032333A35393A35382E30303030 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 323033372D30312D30312032333A35393A35382E30303030 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 323033372D30312D30312032333A35393A35382E30303030 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 323033372D30312D30312032333A35393A35382E30303030 2037-01-01 23:59:58.0009 2037-01-01 23:59:58.0009 323033372D30312D30312032333A35393A35382E30303039 2037-01-01 23:59:58.0099 2037-01-01 23:59:58.0099 323033372D30312D30312032333A35393A35382E30303939 2037-01-01 23:59:58.0999 2037-01-01 23:59:58.0999 323033372D30312D30312032333A35393A35382E30393939 2037-01-01 23:59:58.1000 2037-01-01 23:59:58.1000 323033372D30312D30312032333A35393A35382E31303030 2037-01-01 23:59:58.9000 2037-01-01 23:59:58.9000 323033372D30312D30312032333A35393A35382E39303030 2037-01-01 23:59:58.9900 2037-01-01 23:59:58.9900 323033372D30312D30312032333A35393A35382E39393030 2037-01-01 23:59:58.9990 2037-01-01 23:59:58.9990 323033372D30312D30312032333A35393A35382E39393930 2037-01-01 23:59:58.9999 2037-01-01 23:59:58.9999 323033372D30312D30312032333A35393A35382E39393939 2037-01-01 23:59:58.9999 2037-01-01 23:59:58.9999 323033372D30312D30312032333A35393A35382E39393939 2037-01-01 23:59:58.9999 2037-01-01 23:59:58.9999 323033372D30312D30312032333A35393A35382E39393939 2037-01-01 23:59:59.0000 2037-01-01 23:59:59.0000 323033372D30312D30312032333A35393A35392E30303030 SELECT a3, d3, HEX(WEIGHT_STRING(d3)) FROM t1 ORDER BY d3, a6; a3 d3 HEX(WEIGHT_STRING(d3)) 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 313937302D30312D30312030303A30303A30312E303030 1970-01-01 00:00:01.009 1970-01-01 00:00:01.009 313937302D30312D30312030303A30303A30312E303039 1970-01-01 00:00:01.099 1970-01-01 00:00:01.099 313937302D30312D30312030303A30303A30312E303939 1970-01-01 00:00:01.100 1970-01-01 00:00:01.100 313937302D30312D30312030303A30303A30312E313030 1970-01-01 00:00:01.900 1970-01-01 00:00:01.900 313937302D30312D30312030303A30303A30312E393030 1970-01-01 00:00:01.990 1970-01-01 00:00:01.990 313937302D30312D30312030303A30303A30312E393930 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 313937302D30312D30312030303A30303A30312E393939 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 313937302D30312D30312030303A30303A30312E393939 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 313937302D30312D30312030303A30303A30312E393939 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 313937302D30312D30312030303A30303A30312E393939 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 313937302D30312D30312030303A30303A30322E303030 1970-01-01 00:00:02.009 1970-01-01 00:00:02.009 313937302D30312D30312030303A30303A30322E303039 1970-01-01 00:00:02.090 1970-01-01 00:00:02.090 313937302D30312D30312030303A30303A30322E303930 1970-01-01 00:00:02.099 1970-01-01 00:00:02.099 313937302D30312D30312030303A30303A30322E303939 1970-01-01 00:00:02.100 1970-01-01 00:00:02.100 313937302D30312D30312030303A30303A30322E313030 1970-01-01 00:00:02.900 1970-01-01 00:00:02.900 313937302D30312D30312030303A30303A30322E393030 1970-01-01 00:00:02.990 1970-01-01 00:00:02.990 313937302D30312D30312030303A30303A30322E393930 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 313937302D30312D30312030303A30303A30322E393939 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 313937302D30312D30312030303A30303A30322E393939 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 313937302D30312D30312030303A30303A30322E393939 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 313937302D30312D30312030303A30303A30322E393939 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 313937302D30312D30312030303A30313A30302E303030 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 313937302D30312D30312030303A30313A30302E303030 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 313937302D30312D30312030303A30313A30302E303030 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 313937302D30312D30312030303A30313A30302E303030 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 313937302D30312D30312030303A30313A30302E303030 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 313937302D30312D30312030303A30313A30302E303030 1970-01-01 00:01:00.009 1970-01-01 00:01:00.009 313937302D30312D30312030303A30313A30302E303039 1970-01-01 00:01:00.099 1970-01-01 00:01:00.099 313937302D30312D30312030303A30313A30302E303939 1970-01-01 00:01:00.100 1970-01-01 00:01:00.100 313937302D30312D30312030303A30313A30302E313030 1970-01-01 00:01:00.900 1970-01-01 00:01:00.900 313937302D30312D30312030303A30313A30302E393030 1970-01-01 00:01:00.999 1970-01-01 00:01:00.999 313937302D30312D30312030303A30313A30302E393939 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 313937302D30312D30312030313A30303A30302E303030 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 313937302D30312D30312030313A30303A30302E303030 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 313937302D30312D30312030313A30303A30302E303030 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 313937302D30312D30312030313A30303A30302E303030 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 313937302D30312D30312030313A30303A30302E303030 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 313937302D30312D30312030313A30303A30302E303030 1970-01-01 01:00:00.009 1970-01-01 01:00:00.009 313937302D30312D30312030313A30303A30302E303039 1970-01-01 01:00:00.099 1970-01-01 01:00:00.099 313937302D30312D30312030313A30303A30302E303939 1970-01-01 01:00:00.100 1970-01-01 01:00:00.100 313937302D30312D30312030313A30303A30302E313030 1970-01-01 01:00:00.900 1970-01-01 01:00:00.900 313937302D30312D30312030313A30303A30302E393030 1970-01-01 01:00:00.990 1970-01-01 01:00:00.990 313937302D30312D30312030313A30303A30302E393930 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 313937302D30312D30312030313A30303A30302E393939 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 313937302D30312D30312030313A30303A30302E393939 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 313937302D30312D30312030313A30303A30302E393939 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 313937302D30312D30312030313A30303A30302E393939 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 323030312D30312D30312032333A35393A35382E303030 2001-01-01 23:59:58.009 2001-01-01 23:59:58.009 323030312D30312D30312032333A35393A35382E303039 2001-01-01 23:59:58.099 2001-01-01 23:59:58.099 323030312D30312D30312032333A35393A35382E303939 2001-01-01 23:59:58.100 2001-01-01 23:59:58.100 323030312D30312D30312032333A35393A35382E313030 2001-01-01 23:59:58.900 2001-01-01 23:59:58.900 323030312D30312D30312032333A35393A35382E393030 2001-01-01 23:59:58.990 2001-01-01 23:59:58.990 323030312D30312D30312032333A35393A35382E393930 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 323030312D30312D30312032333A35393A35382E393939 2001-01-01 23:59:59.000 2001-01-01 23:59:59.000 323030312D30312D30312032333A35393A35392E303030 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 323033372D30312D30312032333A35393A35382E303030 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 323033372D30312D30312032333A35393A35382E303030 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 323033372D30312D30312032333A35393A35382E303030 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 323033372D30312D30312032333A35393A35382E303030 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 323033372D30312D30312032333A35393A35382E303030 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 323033372D30312D30312032333A35393A35382E303030 2037-01-01 23:59:58.009 2037-01-01 23:59:58.009 323033372D30312D30312032333A35393A35382E303039 2037-01-01 23:59:58.099 2037-01-01 23:59:58.099 323033372D30312D30312032333A35393A35382E303939 2037-01-01 23:59:58.100 2037-01-01 23:59:58.100 323033372D30312D30312032333A35393A35382E313030 2037-01-01 23:59:58.900 2037-01-01 23:59:58.900 323033372D30312D30312032333A35393A35382E393030 2037-01-01 23:59:58.990 2037-01-01 23:59:58.990 323033372D30312D30312032333A35393A35382E393930 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 323033372D30312D30312032333A35393A35382E393939 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 323033372D30312D30312032333A35393A35382E393939 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 323033372D30312D30312032333A35393A35382E393939 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 323033372D30312D30312032333A35393A35382E393939 2037-01-01 23:59:59.000 2037-01-01 23:59:59.000 323033372D30312D30312032333A35393A35392E303030 SELECT a2, d2, HEX(WEIGHT_STRING(d2)) FROM t1 ORDER BY d2, a6; a2 d2 HEX(WEIGHT_STRING(d2)) 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 313937302D30312D30312030303A30303A30312E3030 1970-01-01 00:00:01.09 1970-01-01 00:00:01.09 313937302D30312D30312030303A30303A30312E3039 1970-01-01 00:00:01.10 1970-01-01 00:00:01.10 313937302D30312D30312030303A30303A30312E3130 1970-01-01 00:00:01.90 1970-01-01 00:00:01.90 313937302D30312D30312030303A30303A30312E3930 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 313937302D30312D30312030303A30303A30312E3939 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 313937302D30312D30312030303A30303A30312E3939 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 313937302D30312D30312030303A30303A30312E3939 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 313937302D30312D30312030303A30303A30312E3939 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 313937302D30312D30312030303A30303A30312E3939 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 313937302D30312D30312030303A30303A30322E3030 1970-01-01 00:00:02.09 1970-01-01 00:00:02.09 313937302D30312D30312030303A30303A30322E3039 1970-01-01 00:00:02.09 1970-01-01 00:00:02.09 313937302D30312D30312030303A30303A30322E3039 1970-01-01 00:00:02.10 1970-01-01 00:00:02.10 313937302D30312D30312030303A30303A30322E3130 1970-01-01 00:00:02.90 1970-01-01 00:00:02.90 313937302D30312D30312030303A30303A30322E3930 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 313937302D30312D30312030303A30303A30322E3939 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 313937302D30312D30312030303A30303A30322E3939 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 313937302D30312D30312030303A30303A30322E3939 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 313937302D30312D30312030303A30303A30322E3939 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 313937302D30312D30312030303A30303A30322E3939 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 313937302D30312D30312030303A30313A30302E3030 1970-01-01 00:01:00.09 1970-01-01 00:01:00.09 313937302D30312D30312030303A30313A30302E3039 1970-01-01 00:01:00.10 1970-01-01 00:01:00.10 313937302D30312D30312030303A30313A30302E3130 1970-01-01 00:01:00.90 1970-01-01 00:01:00.90 313937302D30312D30312030303A30313A30302E3930 1970-01-01 00:01:00.99 1970-01-01 00:01:00.99 313937302D30312D30312030303A30313A30302E3939 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 313937302D30312D30312030313A30303A30302E3030 1970-01-01 01:00:00.09 1970-01-01 01:00:00.09 313937302D30312D30312030313A30303A30302E3039 1970-01-01 01:00:00.10 1970-01-01 01:00:00.10 313937302D30312D30312030313A30303A30302E3130 1970-01-01 01:00:00.90 1970-01-01 01:00:00.90 313937302D30312D30312030313A30303A30302E3930 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 313937302D30312D30312030313A30303A30302E3939 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 313937302D30312D30312030313A30303A30302E3939 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 313937302D30312D30312030313A30303A30302E3939 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 313937302D30312D30312030313A30303A30302E3939 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 313937302D30312D30312030313A30303A30302E3939 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 323030312D30312D30312032333A35393A35382E3030 2001-01-01 23:59:58.09 2001-01-01 23:59:58.09 323030312D30312D30312032333A35393A35382E3039 2001-01-01 23:59:58.10 2001-01-01 23:59:58.10 323030312D30312D30312032333A35393A35382E3130 2001-01-01 23:59:58.90 2001-01-01 23:59:58.90 323030312D30312D30312032333A35393A35382E3930 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 323030312D30312D30312032333A35393A35382E3939 2001-01-01 23:59:59.00 2001-01-01 23:59:59.00 323030312D30312D30312032333A35393A35392E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 323033372D30312D30312032333A35393A35382E3030 2037-01-01 23:59:58.09 2037-01-01 23:59:58.09 323033372D30312D30312032333A35393A35382E3039 2037-01-01 23:59:58.10 2037-01-01 23:59:58.10 323033372D30312D30312032333A35393A35382E3130 2037-01-01 23:59:58.90 2037-01-01 23:59:58.90 323033372D30312D30312032333A35393A35382E3930 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 323033372D30312D30312032333A35393A35382E3939 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 323033372D30312D30312032333A35393A35382E3939 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 323033372D30312D30312032333A35393A35382E3939 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 323033372D30312D30312032333A35393A35382E3939 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 323033372D30312D30312032333A35393A35382E3939 2037-01-01 23:59:59.00 2037-01-01 23:59:59.00 323033372D30312D30312032333A35393A35392E3030 SELECT a1, d1, HEX(WEIGHT_STRING(d1)) FROM t1 ORDER BY d1, a6; a1 d1 HEX(WEIGHT_STRING(d1)) 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 313937302D30312D30312030303A30303A30312E30 1970-01-01 00:00:01.1 1970-01-01 00:00:01.1 313937302D30312D30312030303A30303A30312E31 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 313937302D30312D30312030303A30303A30312E39 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 313937302D30312D30312030303A30303A30312E39 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 313937302D30312D30312030303A30303A30312E39 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 313937302D30312D30312030303A30303A30312E39 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 313937302D30312D30312030303A30303A30312E39 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 313937302D30312D30312030303A30303A30312E39 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 313937302D30312D30312030303A30303A30322E30 1970-01-01 00:00:02.1 1970-01-01 00:00:02.1 313937302D30312D30312030303A30303A30322E31 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 313937302D30312D30312030303A30303A30322E39 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 313937302D30312D30312030303A30303A30322E39 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 313937302D30312D30312030303A30303A30322E39 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 313937302D30312D30312030303A30303A30322E39 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 313937302D30312D30312030303A30303A30322E39 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 313937302D30312D30312030303A30303A30322E39 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 313937302D30312D30312030303A30313A30302E30 1970-01-01 00:01:00.1 1970-01-01 00:01:00.1 313937302D30312D30312030303A30313A30302E31 1970-01-01 00:01:00.9 1970-01-01 00:01:00.9 313937302D30312D30312030303A30313A30302E39 1970-01-01 00:01:00.9 1970-01-01 00:01:00.9 313937302D30312D30312030303A30313A30302E39 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 313937302D30312D30312030313A30303A30302E30 1970-01-01 01:00:00.1 1970-01-01 01:00:00.1 313937302D30312D30312030313A30303A30302E31 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 313937302D30312D30312030313A30303A30302E39 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 313937302D30312D30312030313A30303A30302E39 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 313937302D30312D30312030313A30303A30302E39 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 313937302D30312D30312030313A30303A30302E39 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 313937302D30312D30312030313A30303A30302E39 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 313937302D30312D30312030313A30303A30302E39 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 323030312D30312D30312032333A35393A35382E30 2001-01-01 23:59:58.1 2001-01-01 23:59:58.1 323030312D30312D30312032333A35393A35382E31 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 323030312D30312D30312032333A35393A35382E39 2001-01-01 23:59:59.0 2001-01-01 23:59:59.0 323030312D30312D30312032333A35393A35392E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 323033372D30312D30312032333A35393A35382E30 2037-01-01 23:59:58.1 2037-01-01 23:59:58.1 323033372D30312D30312032333A35393A35382E31 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 323033372D30312D30312032333A35393A35382E39 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 323033372D30312D30312032333A35393A35382E39 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 323033372D30312D30312032333A35393A35382E39 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 323033372D30312D30312032333A35393A35382E39 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 323033372D30312D30312032333A35393A35382E39 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 323033372D30312D30312032333A35393A35382E39 2037-01-01 23:59:59.0 2037-01-01 23:59:59.0 323033372D30312D30312032333A35393A35392E30 SELECT a0, d0, HEX(WEIGHT_STRING(d0)) FROM t1 ORDER BY d0, a6; a0 d0 HEX(WEIGHT_STRING(d0)) 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:01. 1970-01-01 00:00:01 313937302D30312D30312030303A30303A3031 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:00:02. 1970-01-01 00:00:02 313937302D30312D30312030303A30303A3032 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 00:01:00. 1970-01-01 00:01:00 313937302D30312D30312030303A30313A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 1970-01-01 01:00:00. 1970-01-01 01:00:00 313937302D30312D30312030313A30303A3030 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:58. 2001-01-01 23:59:58 323030312D30312D30312032333A35393A3538 2001-01-01 23:59:59. 2001-01-01 23:59:59 323030312D30312D30312032333A35393A3539 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:58. 2037-01-01 23:59:58 323033372D30312D30312032333A35393A3538 2037-01-01 23:59:59. 2037-01-01 23:59:59 323033372D30312D30312032333A35393A3539 CREATE VIEW v1 AS SELECT a6, d0, d1, d2, d3, d4, d5, d6, HEX(WEIGHT_STRING(d0)) as wst0, HEX(WEIGHT_STRING(d1)) as wst1, HEX(WEIGHT_STRING(d2)) as wst2, HEX(WEIGHT_STRING(d3)) as wst3, HEX(WEIGHT_STRING(d4)) as wst4, HEX(WEIGHT_STRING(d5)) as wst5, HEX(WEIGHT_STRING(d6)) as wst6 FROM t1; SELECT * FROM v1 WHERE a6 LIKE '%.999999' ORDER BY a6, d6;; a6 1970-01-01 00:00:01.999999 d0 1970-01-01 00:00:01 d1 1970-01-01 00:00:01.9 d2 1970-01-01 00:00:01.99 d3 1970-01-01 00:00:01.999 d4 1970-01-01 00:00:01.9999 d5 1970-01-01 00:00:01.99999 d6 1970-01-01 00:00:01.999999 wst0 313937302D30312D30312030303A30303A3031 wst1 313937302D30312D30312030303A30303A30312E39 wst2 313937302D30312D30312030303A30303A30312E3939 wst3 313937302D30312D30312030303A30303A30312E393939 wst4 313937302D30312D30312030303A30303A30312E39393939 wst5 313937302D30312D30312030303A30303A30312E3939393939 wst6 313937302D30312D30312030303A30303A30312E393939393939 a6 1970-01-01 00:00:02.999999 d0 1970-01-01 00:00:02 d1 1970-01-01 00:00:02.9 d2 1970-01-01 00:00:02.99 d3 1970-01-01 00:00:02.999 d4 1970-01-01 00:00:02.9999 d5 1970-01-01 00:00:02.99999 d6 1970-01-01 00:00:02.999999 wst0 313937302D30312D30312030303A30303A3032 wst1 313937302D30312D30312030303A30303A30322E39 wst2 313937302D30312D30312030303A30303A30322E3939 wst3 313937302D30312D30312030303A30303A30322E393939 wst4 313937302D30312D30312030303A30303A30322E39393939 wst5 313937302D30312D30312030303A30303A30322E3939393939 wst6 313937302D30312D30312030303A30303A30322E393939393939 a6 1970-01-01 00:01:00.999999 d0 1970-01-01 00:01:00 d1 1970-01-01 00:01:00.9 d2 1970-01-01 00:01:00.99 d3 1970-01-01 00:01:00.999 d4 1970-01-01 00:01:00.9999 d5 1970-01-01 00:01:00.99999 d6 1970-01-01 00:01:00.999999 wst0 313937302D30312D30312030303A30313A3030 wst1 313937302D30312D30312030303A30313A30302E39 wst2 313937302D30312D30312030303A30313A30302E3939 wst3 313937302D30312D30312030303A30313A30302E393939 wst4 313937302D30312D30312030303A30313A30302E39393939 wst5 313937302D30312D30312030303A30313A30302E3939393939 wst6 313937302D30312D30312030303A30313A30302E393939393939 a6 1970-01-01 01:00:00.999999 d0 1970-01-01 01:00:00 d1 1970-01-01 01:00:00.9 d2 1970-01-01 01:00:00.99 d3 1970-01-01 01:00:00.999 d4 1970-01-01 01:00:00.9999 d5 1970-01-01 01:00:00.99999 d6 1970-01-01 01:00:00.999999 wst0 313937302D30312D30312030313A30303A3030 wst1 313937302D30312D30312030313A30303A30302E39 wst2 313937302D30312D30312030313A30303A30302E3939 wst3 313937302D30312D30312030313A30303A30302E393939 wst4 313937302D30312D30312030313A30303A30302E39393939 wst5 313937302D30312D30312030313A30303A30302E3939393939 wst6 313937302D30312D30312030313A30303A30302E393939393939 a6 2001-01-01 23:59:58.999999 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.9 d2 2001-01-01 23:59:58.99 d3 2001-01-01 23:59:58.999 d4 2001-01-01 23:59:58.9999 d5 2001-01-01 23:59:58.99999 d6 2001-01-01 23:59:58.999999 wst0 323030312D30312D30312032333A35393A3538 wst1 323030312D30312D30312032333A35393A35382E39 wst2 323030312D30312D30312032333A35393A35382E3939 wst3 323030312D30312D30312032333A35393A35382E393939 wst4 323030312D30312D30312032333A35393A35382E39393939 wst5 323030312D30312D30312032333A35393A35382E3939393939 wst6 323030312D30312D30312032333A35393A35382E393939393939 a6 2037-01-01 23:59:58.999999 d0 2037-01-01 23:59:58 d1 2037-01-01 23:59:58.9 d2 2037-01-01 23:59:58.99 d3 2037-01-01 23:59:58.999 d4 2037-01-01 23:59:58.9999 d5 2037-01-01 23:59:58.99999 d6 2037-01-01 23:59:58.999999 wst0 323033372D30312D30312032333A35393A3538 wst1 323033372D30312D30312032333A35393A35382E39 wst2 323033372D30312D30312032333A35393A35382E3939 wst3 323033372D30312D30312032333A35393A35382E393939 wst4 323033372D30312D30312032333A35393A35382E39393939 wst5 323033372D30312D30312032333A35393A35382E3939393939 wst6 323033372D30312D30312032333A35393A35382E393939393939 SELECT * FROM v1 WHERE a6 LIKE '%.000000' ORDER BY a6, d6;; a6 1970-01-01 00:00:01.000000 d0 1970-01-01 00:00:01 d1 1970-01-01 00:00:01.0 d2 1970-01-01 00:00:01.00 d3 1970-01-01 00:00:01.000 d4 1970-01-01 00:00:01.0000 d5 1970-01-01 00:00:01.00000 d6 1970-01-01 00:00:01.000000 wst0 313937302D30312D30312030303A30303A3031 wst1 313937302D30312D30312030303A30303A30312E30 wst2 313937302D30312D30312030303A30303A30312E3030 wst3 313937302D30312D30312030303A30303A30312E303030 wst4 313937302D30312D30312030303A30303A30312E30303030 wst5 313937302D30312D30312030303A30303A30312E3030303030 wst6 313937302D30312D30312030303A30303A30312E303030303030 a6 1970-01-01 00:00:02.000000 d0 1970-01-01 00:00:02 d1 1970-01-01 00:00:02.0 d2 1970-01-01 00:00:02.00 d3 1970-01-01 00:00:02.000 d4 1970-01-01 00:00:02.0000 d5 1970-01-01 00:00:02.00000 d6 1970-01-01 00:00:02.000000 wst0 313937302D30312D30312030303A30303A3032 wst1 313937302D30312D30312030303A30303A30322E30 wst2 313937302D30312D30312030303A30303A30322E3030 wst3 313937302D30312D30312030303A30303A30322E303030 wst4 313937302D30312D30312030303A30303A30322E30303030 wst5 313937302D30312D30312030303A30303A30322E3030303030 wst6 313937302D30312D30312030303A30303A30322E303030303030 a6 2001-01-01 23:59:59.000000 d0 2001-01-01 23:59:59 d1 2001-01-01 23:59:59.0 d2 2001-01-01 23:59:59.00 d3 2001-01-01 23:59:59.000 d4 2001-01-01 23:59:59.0000 d5 2001-01-01 23:59:59.00000 d6 2001-01-01 23:59:59.000000 wst0 323030312D30312D30312032333A35393A3539 wst1 323030312D30312D30312032333A35393A35392E30 wst2 323030312D30312D30312032333A35393A35392E3030 wst3 323030312D30312D30312032333A35393A35392E303030 wst4 323030312D30312D30312032333A35393A35392E30303030 wst5 323030312D30312D30312032333A35393A35392E3030303030 wst6 323030312D30312D30312032333A35393A35392E303030303030 a6 2037-01-01 23:59:59.000000 d0 2037-01-01 23:59:59 d1 2037-01-01 23:59:59.0 d2 2037-01-01 23:59:59.00 d3 2037-01-01 23:59:59.000 d4 2037-01-01 23:59:59.0000 d5 2037-01-01 23:59:59.00000 d6 2037-01-01 23:59:59.000000 wst0 323033372D30312D30312032333A35393A3539 wst1 323033372D30312D30312032333A35393A35392E30 wst2 323033372D30312D30312032333A35393A35392E3030 wst3 323033372D30312D30312032333A35393A35392E303030 wst4 323033372D30312D30312032333A35393A35392E30303030 wst5 323033372D30312D30312032333A35393A35392E3030303030 wst6 323033372D30312D30312032333A35393A35392E303030303030 SELECT * FROM v1 WHERE a6 LIKE '%.100000' ORDER BY a6, d6;; a6 1970-01-01 00:00:01.100000 d0 1970-01-01 00:00:01 d1 1970-01-01 00:00:01.1 d2 1970-01-01 00:00:01.10 d3 1970-01-01 00:00:01.100 d4 1970-01-01 00:00:01.1000 d5 1970-01-01 00:00:01.10000 d6 1970-01-01 00:00:01.100000 wst0 313937302D30312D30312030303A30303A3031 wst1 313937302D30312D30312030303A30303A30312E31 wst2 313937302D30312D30312030303A30303A30312E3130 wst3 313937302D30312D30312030303A30303A30312E313030 wst4 313937302D30312D30312030303A30303A30312E31303030 wst5 313937302D30312D30312030303A30303A30312E3130303030 wst6 313937302D30312D30312030303A30303A30312E313030303030 a6 1970-01-01 00:00:02.100000 d0 1970-01-01 00:00:02 d1 1970-01-01 00:00:02.1 d2 1970-01-01 00:00:02.10 d3 1970-01-01 00:00:02.100 d4 1970-01-01 00:00:02.1000 d5 1970-01-01 00:00:02.10000 d6 1970-01-01 00:00:02.100000 wst0 313937302D30312D30312030303A30303A3032 wst1 313937302D30312D30312030303A30303A30322E31 wst2 313937302D30312D30312030303A30303A30322E3130 wst3 313937302D30312D30312030303A30303A30322E313030 wst4 313937302D30312D30312030303A30303A30322E31303030 wst5 313937302D30312D30312030303A30303A30322E3130303030 wst6 313937302D30312D30312030303A30303A30322E313030303030 a6 1970-01-01 00:01:00.100000 d0 1970-01-01 00:01:00 d1 1970-01-01 00:01:00.1 d2 1970-01-01 00:01:00.10 d3 1970-01-01 00:01:00.100 d4 1970-01-01 00:01:00.1000 d5 1970-01-01 00:01:00.10000 d6 1970-01-01 00:01:00.100000 wst0 313937302D30312D30312030303A30313A3030 wst1 313937302D30312D30312030303A30313A30302E31 wst2 313937302D30312D30312030303A30313A30302E3130 wst3 313937302D30312D30312030303A30313A30302E313030 wst4 313937302D30312D30312030303A30313A30302E31303030 wst5 313937302D30312D30312030303A30313A30302E3130303030 wst6 313937302D30312D30312030303A30313A30302E313030303030 a6 1970-01-01 01:00:00.100000 d0 1970-01-01 01:00:00 d1 1970-01-01 01:00:00.1 d2 1970-01-01 01:00:00.10 d3 1970-01-01 01:00:00.100 d4 1970-01-01 01:00:00.1000 d5 1970-01-01 01:00:00.10000 d6 1970-01-01 01:00:00.100000 wst0 313937302D30312D30312030313A30303A3030 wst1 313937302D30312D30312030313A30303A30302E31 wst2 313937302D30312D30312030313A30303A30302E3130 wst3 313937302D30312D30312030313A30303A30302E313030 wst4 313937302D30312D30312030313A30303A30302E31303030 wst5 313937302D30312D30312030313A30303A30302E3130303030 wst6 313937302D30312D30312030313A30303A30302E313030303030 a6 2001-01-01 23:59:58.100000 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.1 d2 2001-01-01 23:59:58.10 d3 2001-01-01 23:59:58.100 d4 2001-01-01 23:59:58.1000 d5 2001-01-01 23:59:58.10000 d6 2001-01-01 23:59:58.100000 wst0 323030312D30312D30312032333A35393A3538 wst1 323030312D30312D30312032333A35393A35382E31 wst2 323030312D30312D30312032333A35393A35382E3130 wst3 323030312D30312D30312032333A35393A35382E313030 wst4 323030312D30312D30312032333A35393A35382E31303030 wst5 323030312D30312D30312032333A35393A35382E3130303030 wst6 323030312D30312D30312032333A35393A35382E313030303030 a6 2037-01-01 23:59:58.100000 d0 2037-01-01 23:59:58 d1 2037-01-01 23:59:58.1 d2 2037-01-01 23:59:58.10 d3 2037-01-01 23:59:58.100 d4 2037-01-01 23:59:58.1000 d5 2037-01-01 23:59:58.10000 d6 2037-01-01 23:59:58.100000 wst0 323033372D30312D30312032333A35393A3538 wst1 323033372D30312D30312032333A35393A35382E31 wst2 323033372D30312D30312032333A35393A35382E3130 wst3 323033372D30312D30312032333A35393A35382E313030 wst4 323033372D30312D30312032333A35393A35382E31303030 wst5 323033372D30312D30312032333A35393A35382E3130303030 wst6 323033372D30312D30312032333A35393A35382E313030303030 DROP VIEW v1; DROP TABLE t1; SET time_zone=default; # # Testing bad FSPs # CREATE TABLE t1 (a TIMESTAMP(-1)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-1))' at line 1 CREATE TABLE t1 (a TIMESTAMP(7)); ERROR 42000: Too big precision 7 specified for 'a'. Maximum is 6. CREATE TABLE t1 (a TIMESTAMP(31)); ERROR 42000: Too big precision 31 specified for 'a'. Maximum is 6. # # Testing rounding when altering TIMESTAMP(N) to a smaller size # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a TIMESTAMP(5); SELECT * FROM t1; a 2001-01-01 10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME; Warnings: Note 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 10:10:10 DROP TABLE t1; # # Testing rounding from VARCHAR and DATETIME(6) to TIMESTAMP(N) # CREATE TABLE t1 (a VARCHAR(32), t6 TIMESTAMP(6) NULL DEFAULT NULL, t5 TIMESTAMP(5) NULL DEFAULT NULL, t4 TIMESTAMP(4) NULL DEFAULT NULL, t3 TIMESTAMP(3) NULL DEFAULT NULL, t2 TIMESTAMP(2) NULL DEFAULT NULL, t1 TIMESTAMP(1) NULL DEFAULT NULL, t0 TIMESTAMP NULL DEFAULT NULL); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999949'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999499'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.994999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.949999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 ALTER TABLE t1 MODIFY a TIMESTAMP(6); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing rounding from TIMESTAMP(N) to BIGINT # CREATE TABLE t1 (a BIGINT, b TIMESTAMP(6) NULL DEFAULT NULL); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:59.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET a=b; SELECT * FROM t1; a b 20010101101059 2001-01-01 10:10:59.500000 20010101101010 2001-01-01 10:10:10.500000 20010101101010 2001-01-01 10:10:10.499999 DROP TABLE t1; # # Testing rounding from TIME(6) to TIMESTAMP(N) # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME(6), t6 TIMESTAMP(6), t5 TIMESTAMP(5), t4 TIMESTAMP(4), t3 TIMESTAMP(3), t2 TIMESTAMP(2), t1 TIMESTAMP(1), t0 TIMESTAMP); INSERT INTO t1 (a) VALUES ('10:10:10.999999'); INSERT INTO t1 (a) VALUES ('10:10:10.999994'); INSERT INTO t1 (a) VALUES ('10:10:10.999949'); INSERT INTO t1 (a) VALUES ('10:10:10.999499'); INSERT INTO t1 (a) VALUES ('10:10:10.994999'); INSERT INTO t1 (a) VALUES ('10:10:10.949999'); INSERT INTO t1 (a) VALUES ('10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 DROP TABLE t1; SET timestamp=default; # # Testing rounding from DECIMAL to TIMESTAMP(N) # CREATE TABLE t1 (a DECIMAL(30,6), t6 TIMESTAMP(6), t5 TIMESTAMP(5), t4 TIMESTAMP(4), t3 TIMESTAMP(3), t2 TIMESTAMP(2), t1 TIMESTAMP(1), t0 TIMESTAMP); INSERT INTO t1 (a) VALUES (20010101101010.999999); INSERT INTO t1 (a) VALUES (20010101101010.999994); INSERT INTO t1 (a) VALUES (20010101101010.999949); INSERT INTO t1 (a) VALUES (20010101101010.999499); INSERT INTO t1 (a) VALUES (20010101101010.994999); INSERT INTO t1 (a) VALUES (20010101101010.949999); INSERT INTO t1 (a) VALUES (20010101101010.499999); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 20010101101010.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99994 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99949 t4 2001-01-01 10:10:10.9994 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99499 t4 2001-01-01 10:10:10.9949 t3 2001-01-01 10:10:10.994 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.94999 t4 2001-01-01 10:10:10.9499 t3 2001-01-01 10:10:10.949 t2 2001-01-01 10:10:10.94 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:10 a 20010101101010.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.49999 t4 2001-01-01 10:10:10.4999 t3 2001-01-01 10:10:10.499 t2 2001-01-01 10:10:10.49 t1 2001-01-01 10:10:10.4 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.999999'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.456'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45678'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567891'); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('9999-12-31 23:59:59.000000'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 0000-00-00 00:00:00.000000 SELECT * FROM t1 ORDER BY a DESC; a 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45'; a 2000-01-01 01:02:03.450000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.4567'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45670'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 ORDER BY a; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 SELECT * FROM t1 ORDER BY a DESC; a 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 EXPLAIN SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 7 const 1 Using index SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2000-01-01 01:02:03.456' AND '2000-01-01 01:02:03.45678'; a 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 DROP TABLE t1; # # Testing range: stored_field_cmp_to_item # CREATE TABLE t1 (a datetime(6), key(a)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'), ('2000-01-01 00:00:00'), ('2000-01-01 00:00:01'), ('2000-01-01 00:00:01'); SELECT * FROM t1 WHERE a >= 20000101000000; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 SELECT * FROM t1 WHERE a >= 20000101000000.0; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 UPDATE t1 SET a=ADDTIME(a, 0.000001); SELECT * FROM t1; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 SELECT * FROM t1 WHERE a >= 20000101000000.000001; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 DROP TABLE t1; # # Rare TIMESTAMP formats # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (101.101); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (990101.102); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('990101.103'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (131.104); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('000131.105'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 2000-01-01 00:00:00.101000 1999-01-01 00:00:00.102000 0000-00-00 00:00:00.000000 2000-01-31 00:00:00.104000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00.123456 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.123'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0.123); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0.123e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (CAST('0000-00-00 00:00:00.123' AS DATETIME(6))); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 1999-01-01 00:00:00.123456 1999-01-01 00:00:00.000000 1999-01-01 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing huge values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ( 100000000000000000.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing implicit CAST from TIME to TIMESTAMP # SET time_zone='+00:00'; SET @@timestamp=UNIX_TIMESTAMP('2008-01-03 10:20:30.1'); CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (CURRENT_TIME), (CURRENT_TIME(6)); INSERT INTO t1 VALUES (TIME'08:00:00.123456'), (TIME'240:00:00.000001'); INSERT INTO t1 VALUES (TIME'-10:00:00.000001'), (TIME'-240:00:00.000001'); SELECT CURRENT_DATE, CURRENT_TIME(6); CURRENT_DATE CURRENT_TIME(6) 2008-01-03 10:20:30.100000 SELECT a, HEX(WEIGHT_STRING(a)) FROM t1; a HEX(WEIGHT_STRING(a)) 2008-01-03 10:20:30.000000 323030382D30312D30332031303A32303A33302E303030303030 2008-01-03 10:20:30.100000 323030382D30312D30332031303A32303A33302E313030303030 2008-01-03 08:00:00.123456 323030382D30312D30332030383A30303A30302E313233343536 2008-01-13 00:00:00.000001 323030382D30312D31332030303A30303A30302E303030303031 2008-01-02 13:59:59.999999 323030382D30312D30322031333A35393A35392E393939393939 2007-12-23 23:59:59.999999 323030372D31322D32332032333A35393A35392E393939393939 DELETE FROM t1; SET time_zone='-12:00'; INSERT INTO t1 VALUES (CURRENT_TIME), (CURRENT_TIME(6)); INSERT INTO t1 VALUES (TIME'08:00:00.123456'), (TIME'240:00:00.000001'); INSERT INTO t1 VALUES (TIME'-10:00:00.000001'), (TIME'-240:00:00.000001'); SELECT CURRENT_DATE, CURRENT_TIME(6); CURRENT_DATE CURRENT_TIME(6) 2008-01-02 22:20:30.100000 SELECT a, HEX(WEIGHT_STRING(a)) FROM t1; a HEX(WEIGHT_STRING(a)) 2008-01-02 22:20:30.000000 323030382D30312D30322032323A32303A33302E303030303030 2008-01-02 22:20:30.100000 323030382D30312D30322032323A32303A33302E313030303030 2008-01-02 08:00:00.123456 323030382D30312D30322030383A30303A30302E313233343536 2008-01-12 00:00:00.000001 323030382D30312D31322030303A30303A30302E303030303031 2008-01-01 13:59:59.999999 323030382D30312D30312031333A35393A35392E393939393939 2007-12-22 23:59:59.999999 323030372D31322D32322032333A35393A35392E393939393939 SET time_zone='+00:00'; SELECT CURRENT_DATE, CURRENT_TIME(6); CURRENT_DATE CURRENT_TIME(6) 2008-01-03 10:20:30.100000 SELECT a, HEX(WEIGHT_STRING(a)) FROM t1; a HEX(WEIGHT_STRING(a)) 2008-01-03 10:20:30.000000 323030382D30312D30332031303A32303A33302E303030303030 2008-01-03 10:20:30.100000 323030382D30312D30332031303A32303A33302E313030303030 2008-01-02 20:00:00.123456 323030382D30312D30322032303A30303A30302E313233343536 2008-01-12 12:00:00.000001 323030382D30312D31322031323A30303A30302E303030303031 2008-01-02 01:59:59.999999 323030382D30312D30322030313A35393A35392E393939393939 2007-12-23 11:59:59.999999 323030372D31322D32332031313A35393A35392E393939393939 DROP TABLE t1; SET time_zone=default; SET @@timestamp=default; # # Testing IN # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000001'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000002'); SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000002 2000-01-01 10:00:00.000000 2000-01-01 10:00:00.000001 2000-01-01 10:00:00.000002 2000-01-01 23:00:00.000000 2000-01-01 23:00:00.000001 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001', '2000-01-01 23:00:00.000002'); a 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a=0.1; a SELECT * FROM t1 WHERE a IN (0.1); a SELECT * FROM t1 WHERE a IN (20000101000000.000001, 20000101230000.000001); a 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 # # Testing IN with index: involves field->store_packed() # ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001', '2000-01-01 23:00:00.000002'); a 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (20000101000000.000001, 20000101230000.000001); a 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing CREATE TABLE LIKE # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); CREATE TABLE t2 LIKE t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2, t1; # # Testing CREATE TABLE .. SELECT # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2, t1; # # Testing JOIN between TIMESTAMP(6) and TIMESTAMP(6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123456'); CREATE TABLE t2 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t2 SELECT * FROM t1; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN between TIMESTAMP and TIMESTAMP(6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.000000'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.999999'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.000000'); CREATE TABLE t2 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT INTO t2 VALUES ('2000-01-01 10:11:12'); INSERT INTO t2 VALUES ('2000-01-01 10:11:13'); INSERT INTO t2 VALUES ('0000-00-00 23:59:59'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t2 VALUES ('2000-01-01 23:59:59'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 ALTER TABLE t1 ADD KEY(a); ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 DROP TABLE t2, t1; # # Testing unique index # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), UNIQUE(a)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); ERROR 23000: Duplicate entry '2000-01-01 00:01:02.123450' for key 'a' DROP TABLE t1; # # Testing GROUP BY # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.0'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.01'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.010'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.020'); SELECT a, COUNT(*) FROM t1 GROUP BY a; a COUNT(*) 2000-01-01 00:01:02.000000 2 2000-01-01 00:01:02.010000 2 2000-01-01 00:01:02.020000 2 DROP TABLE t1; # # Testing MIN() and MAX() # CREATE TABLE t1 (a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02.000001'); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02.000001'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02.000001'); SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) 2001-01-01 00:01:02.000000 2001-01-01 10:11:02.000001 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 2001-01-01 00:01:02.000000 2001-01-01 00:01:02.000001 2 2001-01-01 10:01:02.000000 2001-01-01 10:01:02.000001 3 2001-01-01 10:11:02.000000 2001-01-01 10:11:02.000001 DROP TABLE t1; # # Testing LEAST # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.1'); SELECT LEAST(a, '2001-01-02 00:00:00.1') AS a FROM t1; a 2001-01-01 00:00:00.100000 SELECT LEAST(a, '2001-01-02 00:00:00.1') + 0 AS a FROM t1; a 20010101000000.100000 SELECT CAST(LEAST(a, '2001-01-02 00:00:00.1') AS SIGNED) AS a FROM t1; a 20010101000000 SELECT CAST(LEAST(a, '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a FROM t1; a 20010101000000.100000 SELECT GREATEST(a, '2001-01-02 00:00:00.1') AS a FROM t1; a 2001-01-02 00:00:00.100000 SELECT GREATEST(a, '2001-01-02 00:00:00.1') + 0 AS a FROM t1; a 20010102000000.100000 SELECT CAST(GREATEST(a, '2001-01-02 00:00:00.1') AS SIGNED) AS a FROM t1; a 20010102000000 SELECT CAST(GREATEST(a, '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a FROM t1; a 20010102000000.100000 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1), b TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); CREATE TABLE t2 AS SELECT LEAST(a, b), GREATEST(a, b) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `LEAST(a, b)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `GREATEST(a, b)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing INSERT, MAX and MIN values # '1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999' UTC # SET time_zone='+00:00'; CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2038-01-19 03:14:07'); INSERT INTO t1 VALUES ('2038-01-19 03:14:07.999999'); INSERT INTO t1 VALUES ('2038-01-19 03:14:08'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('1970-01-01 00:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('1970-01-01 00:00:00.999999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01'); SELECT * FROM t1; a 2038-01-19 03:14:07.000000 2038-01-19 03:14:07.999999 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 1970-01-01 00:00:00.999999 1970-01-01 00:00:01.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:01.1'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (1.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (1.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing integer INSERT value # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (19990102); INSERT INTO t1 VALUES (19990102112233); INSERT INTO t1 VALUES (100000101112233); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0); INSERT INTO t1 VALUES (-1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 1999-01-02 00:00:00.000000 1999-01-02 11:22:33.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing decimal INSERT values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (20010101223344.4); INSERT INTO t1 VALUES (20010101223344.45); INSERT INTO t1 VALUES (20010101223344.456); INSERT INTO t1 VALUES (20010101223344.4567); INSERT INTO t1 VALUES (20010101223344.45678); INSERT INTO t1 VALUES (20010101223344.456789); INSERT INTO t1 VALUES (20010101202030.4567894); INSERT INTO t1 VALUES (20010101202030.4567895); INSERT INTO t1 VALUES (20010101202030.4567896); INSERT INTO t1 VALUES (20010101202030.456789678); INSERT INTO t1 VALUES (200101018385959.000000); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-200101018385959.000000); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 2001-01-01 22:33:44.400000 2001-01-01 22:33:44.450000 2001-01-01 22:33:44.456000 2001-01-01 22:33:44.456700 2001-01-01 22:33:44.456780 2001-01-01 22:33:44.456789 2001-01-01 20:20:30.456789 2001-01-01 20:20:30.456789 2001-01-01 20:20:30.456789 2001-01-01 20:20:30.456789 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing double INSERT values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (112.233e-3); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.223e-2); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e-1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e0); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e1); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e2); Warnings: Note 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e3); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e4); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-123.456e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-12 00:00:00.233000 2000-11-22 00:00:00.329999 2001-12-23 00:00:00.299999 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing UPDATE between TIMESTAMP(6) and TIMESTAMP/BIGINT/DECIMAL/DOUBLE # CREATE TABLE t1 (t0 TIMESTAMP, t6 TIMESTAMP(6), i BIGINT, d DECIMAL(20,6), f DOUBLE); INSERT INTO t1 (t0) VALUES ('2000-01-01 11:22:33'); UPDATE t1 SET t6=t0, i=t0, d=t0, f=t0; SELECT t6, i, d FROM t1; t6 i d 2000-01-01 11:22:33.000000 20000101112233 20000101112233.000000 UPDATE t1 SET t6='2001-02-02 11:22:33.1'; UPDATE t1 SET t0=t6, i=t6, d=t6, f=t6; SELECT * FROM t1; t0 t6 i d f 2001-02-02 11:22:33 2001-02-02 11:22:33.100000 20010202112233 20010202112233.100000 20010202112233.1 UPDATE t1 SET i=20000101112233, d=20001010112233.1, f=00001010112233.1; UPDATE t1 SET t6=i; SELECT t6 FROM t1; t6 2000-01-01 11:22:33.000000 UPDATE t1 SET t6=d; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 UPDATE t1 SET t6=f; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 DROP TABLE t1; # # Testing JOIN with comparison between TIMESTAMP(6) and DATE # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-02 00:00:00.000000'); CREATE TABLE t2 (a DATE); INSERT INTO t2 VALUES ('2000-01-01'); INSERT INTO t2 VALUES ('2000-01-02'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 2000-01-02 00:00:00.000000 2000-01-02 ALTER TABLE t2 MODIFY a TIMESTAMP(6); SELECT * FROM t1, t2 WHERE t1.a=CAST(t2.a AS DATE) ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-02 00:00:00.000000 2000-01-02 00:00:00.000000 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN with comparison between TIMESTAMP(6) and BIGINT # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.123'); CREATE TABLE t2 (b BIGINT); INSERT INTO t2 VALUES (20000101); INSERT INTO t2 VALUES (20000101112233); SELECT * FROM t1, t2 WHERE a=b; a b 2000-01-01 00:00:00.000000 20000101 2000-01-01 11:22:33.000000 20000101112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and DECIMAL(20,6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,6)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); INSERT INTO t2 VALUES (20010101112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000000 2001-01-01 11:22:33.123000 20010101112233.123000 2001-01-01 11:22:33.123456 20010101112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and DECIMAL(20,3) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,3)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000 2001-01-01 11:22:33.123000 20010101112233.123 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and DOUBLE # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 11:22:33'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.1'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.12'); CREATE TABLE t2 (b DOUBLE); INSERT INTO t2 VALUES (20000101112233); INSERT INTO t2 VALUES (20000101112233.1); INSERT INTO t2 VALUES (20000101112233.12); SELECT * FROM t2; b 20000101112233 20000101112233.1 20000101112233.12 SELECT * FROM t1, t2 WHERE a=b; a b 2000-01-01 11:22:33.000000 20000101112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and VARCHAR # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); CREATE TABLE t2 (b VARCHAR(64)); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.1230'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.12300'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000000'); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 ADD KEY (a); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t2 ADD KEY (b); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 DROP TABLE t1, t2; # # Testing arithmetic with INT, DECIMAL, FLOAT # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); SELECT a, a + 0, a + 1, a + 1.0, a + 1e0 FROM t1; a a + 0 a + 1 a + 1.0 a + 1e0 2001-01-01 00:00:00.000000 20010101000000.000000 20010101000001.000000 20010101000001.000000 20010101000001 2001-01-01 00:00:00.000001 20010101000000.000001 20010101000001.000001 20010101000001.000001 20010101000001 CREATE TABLE t2 AS SELECT a + 1 AS i, a + 1.0 AS d, a + 1e0 AS f FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `i` decimal(27,6) NOT NULL DEFAULT '0.000000', `d` decimal(27,6) NOT NULL DEFAULT '0.000000', `f` double NOT NULL DEFAULT '0' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1, t2; # # Testing that TIMESTAMP behaves as INT/DECIMAL for numeric arithmetic # CREATE TABLE t1 (t0 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, t3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00', t6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT t0 + 1, t3 + 1, t6 + 1, t0 - 1, t3 - 1, t6 - 1, t0 * 1, t3 * 1, t6 * 1, t0 / 1, t3 / 1, t6 / 1, TIMESTAMP'2001-01-01 10:10:10' + 1, TIMESTAMP'2001-01-01 10:10:10.123' + 1, TIMESTAMP'2001-01-01 10:10:10.123456' + 1, TIMESTAMP'2001-01-01 10:10:10' - 1, TIMESTAMP'2001-01-01 10:10:10.123' - 1, TIMESTAMP'2001-01-01 10:10:10.123456' - 1, TIMESTAMP'2001-01-01 10:10:10' * 1, TIMESTAMP'2001-01-01 10:10:10.123' * 1, TIMESTAMP'2001-01-01 10:10:10.123456' * 1, TIMESTAMP'2001-01-01 10:10:10' / 1, TIMESTAMP'2001-01-01 10:10:10.123' / 1, TIMESTAMP'2001-01-01 10:10:10.123456' / 1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0 + 1` bigint(21) NOT NULL DEFAULT '0', `t3 + 1` decimal(24,3) NOT NULL DEFAULT '0.000', `t6 + 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `t0 - 1` bigint(21) NOT NULL DEFAULT '0', `t3 - 1` decimal(24,3) NOT NULL DEFAULT '0.000', `t6 - 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `t0 * 1` bigint(21) NOT NULL DEFAULT '0', `t3 * 1` decimal(24,3) NOT NULL DEFAULT '0.000', `t6 * 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `t0 / 1` decimal(23,4) DEFAULT NULL, `t3 / 1` decimal(27,7) DEFAULT NULL, `t6 / 1` decimal(30,10) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10' + 1` bigint(21) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' + 1` decimal(24,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' + 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' - 1` bigint(21) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' - 1` decimal(24,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' - 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' * 1` bigint(21) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' * 1` decimal(24,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' * 1` decimal(27,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' / 1` decimal(23,4) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123' / 1` decimal(27,7) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123456' / 1` decimal(30,10) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing that TIMESTAMP behaves as DECIMAL for SUM() and AVG() # SET @t='2010-01-01 00:11:12.123456'; CREATE TABLE t1 (t0 DATETIME, t3 DATETIME(3), t6 DATETIME(6)); INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 20100101001112 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.123 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.1230000 SUM(t3) 20100101001112.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.123456 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.1234560000 SUM(t6) 20100101001112.123456 SET @t='2010-01-01 00:11:12.000000'; INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 40200202002224 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.000 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.0615000 SUM(t3) 40200202002224.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.000000 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.0617280000 SUM(t6) 40200202002224.123456 CREATE TABLE t2 AS SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0), MIN(t3), MAX(t3), AVG(t3), SUM(t3), MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MIN(t0)` datetime DEFAULT NULL, `MAX(t0)` datetime DEFAULT NULL, `AVG(t0)` decimal(23,4) DEFAULT NULL, `SUM(t0)` decimal(41,0) DEFAULT NULL, `MIN(t3)` datetime(3) DEFAULT NULL, `MAX(t3)` datetime(3) DEFAULT NULL, `AVG(t3)` decimal(27,7) DEFAULT NULL, `SUM(t3)` decimal(45,3) DEFAULT NULL, `MIN(t6)` datetime(6) DEFAULT NULL, `MAX(t6)` datetime(6) DEFAULT NULL, `AVG(t6)` decimal(30,10) DEFAULT NULL, `SUM(t6)` decimal(48,6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing functions ADDTIME, SUBTIME, TIMESTAMP, TIMEDIFF, DATE_ADD/SUB # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('1970-01-01 01:00:01.000000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:01.000001'); INSERT INTO t1 VALUES ('1971-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('1971-01-01 01:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000001'); SELECT ADDTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '00:00:00.000001') 1970-01-01 01:00:01.000001 1970-01-01 01:00:01.000002 1971-01-01 01:00:00.000001 1971-01-01 01:00:00.000002 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000002 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000002 SELECT ADDTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '10:00:00.000001') 1970-01-01 11:00:01.000001 1970-01-01 11:00:01.000002 1971-01-01 11:00:00.000001 1971-01-01 11:00:00.000002 2001-01-01 10:00:00.000001 2001-01-01 10:00:00.000002 2001-01-01 11:00:00.000001 2001-01-01 11:00:00.000002 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000) 1970-01-01 11:00:01 1970-01-01 11:00:01 1971-01-01 11:00:00 1971-01-01 11:00:00 2001-01-01 10:00:00 2001-01-01 10:00:00 2001-01-01 11:00:00 2001-01-01 11:00:00 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000.1) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000.1) 1970-01-01 11:00:01.1 1970-01-01 11:00:01.1 1971-01-01 11:00:00.1 1971-01-01 11:00:00.1 2001-01-01 10:00:00.1 2001-01-01 10:00:00.1 2001-01-01 11:00:00.1 2001-01-01 11:00:00.1 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) 1970-01-01 01:00:01.000000 1970-01-01 11:00:01 1970-01-01 01:00:01.000001 1970-01-01 11:00:01 1971-01-01 01:00:00.000000 1971-01-01 11:00:00 1971-01-01 01:00:00.000001 1971-01-01 11:00:00 2001-01-01 00:00:00.000000 2001-01-01 10:00:00 2001-01-01 00:00:00.000001 2001-01-01 10:00:00 2001-01-01 01:00:00.000000 2001-01-01 11:00:00 2001-01-01 01:00:00.000001 2001-01-01 11:00:00 SELECT a, ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) 1970-01-01 01:00:01.000000 1970-01-01 11:00:01.000000 1970-01-01 01:00:01.000001 1970-01-01 11:00:01.000001 1971-01-01 01:00:00.000000 1971-01-01 11:00:00.000000 1971-01-01 01:00:00.000001 1971-01-01 11:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000001 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) 1970-01-01 01:00:01.000000 1970-01-01 11:00:01.000000 1970-01-01 01:00:01.000001 1970-01-01 11:00:01.000000 1971-01-01 01:00:00.000000 1971-01-01 11:00:00.000000 1971-01-01 01:00:00.000001 1971-01-01 11:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000000 SELECT ADDTIME(a, a) FROM t1 ORDER BY a; ADDTIME(a, a) NULL NULL NULL NULL NULL NULL NULL NULL CREATE TABLE t2 AS SELECT ADDTIME(a, '00:00:00.000001'), ADDTIME(a, '10:00:00.000001'), ADDTIME(CAST(a AS DATETIME(0)), 100000), ADDTIME(CAST(a AS DATETIME(0)), 100000.1), ADDTIME(a,a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `ADDTIME(a, '00:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(a, '10:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000)` datetime DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000.1)` datetime(1) DEFAULT NULL, `ADDTIME(a,a)` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; SELECT TIMESTAMP(a, '10:00:00') FROM t1; TIMESTAMP(a, '10:00:00') 1970-01-01 11:00:01.000000 1970-01-01 11:00:01.000001 1971-01-01 11:00:00.000000 1971-01-01 11:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 10:00:00.000001 2001-01-01 11:00:00.000000 2001-01-01 11:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) 1970-01-01 01:00:01 1970-01-01 01:00:01 1971-01-01 01:00:00 1971-01-01 01:00:00 2001-01-01 00:00:00 2001-01-01 00:00:00 2001-01-01 01:00:00 2001-01-01 01:00:00 SELECT TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) 1970-01-01 01:00:01.000000 1970-01-01 01:00:01.000001 1971-01-01 01:00:00.000000 1971-01-01 01:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) 1970-01-01 01:00:01.000000 1970-01-01 01:00:01.000000 1971-01-01 01:00:00.000000 1971-01-01 01:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000000 CREATE TABLE t2 AS SELECT TIMESTAMP(a, '10:00:00'), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `TIMESTAMP(a, '10:00:00')` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0)))` datetime DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0)))` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6)))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; SELECT SUBTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '00:00:00.000001') 1970-01-01 01:00:00.999999 1970-01-01 01:00:01.000000 1971-01-01 00:59:59.999999 1971-01-01 01:00:00.000000 2000-12-31 23:59:59.999999 2001-01-01 00:00:00.000000 2001-01-01 00:59:59.999999 2001-01-01 01:00:00.000000 SELECT SUBTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '10:00:00.000001') 1969-12-31 15:00:00.999999 1969-12-31 15:00:01.000000 1970-12-31 14:59:59.999999 1970-12-31 15:00:00.000000 2000-12-31 13:59:59.999999 2000-12-31 14:00:00.000000 2000-12-31 14:59:59.999999 2000-12-31 15:00:00.000000 SELECT SUBTIME(a, a) FROM t1 ORDER BY a; SUBTIME(a, a) NULL NULL NULL NULL NULL NULL NULL NULL CREATE TABLE t2 AS SELECT SUBTIME(a, '00:00:00.000001'), SUBTIME(a, '10:00:00.000001'), SUBTIME(CAST(a AS DATETIME(0)), 100000), SUBTIME(CAST(a AS DATETIME(0)), 100000.1), SUBTIME(a,a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `SUBTIME(a, '00:00:00.000001')` datetime(6) DEFAULT NULL, `SUBTIME(a, '10:00:00.000001')` datetime(6) DEFAULT NULL, `SUBTIME(CAST(a AS DATETIME(0)), 100000)` datetime DEFAULT NULL, `SUBTIME(CAST(a AS DATETIME(0)), 100000.1)` datetime(1) DEFAULT NULL, `SUBTIME(a,a)` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; SELECT DATE_ADD(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(a, INTERVAL 1 MINUTE) 1970-01-01 01:01:01.000000 1970-01-01 01:01:01.000001 1971-01-01 01:01:00.000000 1971-01-01 01:01:00.000001 2001-01-01 00:01:00.000000 2001-01-01 00:01:00.000001 2001-01-01 01:01:00.000000 2001-01-01 01:01:00.000001 SELECT DATE_SUB(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(a, INTERVAL 1 MINUTE) 1970-01-01 00:59:01.000000 1970-01-01 00:59:01.000001 1971-01-01 00:59:00.000000 1971-01-01 00:59:00.000001 2000-12-31 23:59:00.000000 2000-12-31 23:59:00.000001 2001-01-01 00:59:00.000000 2001-01-01 00:59:00.000001 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1970-01-01 01:01:01 1970-01-01 01:01:01 1971-01-01 01:01:00 1971-01-01 01:01:00 2001-01-01 00:01:00 2001-01-01 00:01:00 2001-01-01 01:01:00 2001-01-01 01:01:00 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1970-01-01 00:59:01 1970-01-01 00:59:01 1971-01-01 00:59:00 1971-01-01 00:59:00 2000-12-31 23:59:00 2000-12-31 23:59:00 2001-01-01 00:59:00 2001-01-01 00:59:00 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1970-01-01 01:00:01.000001 1970-01-01 01:00:01.000001 1971-01-01 01:00:00.000001 1971-01-01 01:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000001 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1970-01-01 01:00:00.999999 1970-01-01 01:00:00.999999 1971-01-01 00:59:59.999999 1971-01-01 00:59:59.999999 2000-12-31 23:59:59.999999 2000-12-31 23:59:59.999999 2001-01-01 00:59:59.999999 2001-01-01 00:59:59.999999 SELECT a, DATE_ADD(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL -0.1 SECOND) 1970-01-01 01:00:01.000000 1970-01-01 01:00:00.900000 1970-01-01 01:00:01.000001 1970-01-01 01:00:00.900001 1971-01-01 01:00:00.000000 1971-01-01 00:59:59.900000 1971-01-01 01:00:00.000001 1971-01-01 00:59:59.900001 2001-01-01 00:00:00.000000 2000-12-31 23:59:59.900000 2001-01-01 00:00:00.000001 2000-12-31 23:59:59.900001 2001-01-01 01:00:00.000000 2001-01-01 00:59:59.900000 2001-01-01 01:00:00.000001 2001-01-01 00:59:59.900001 SELECT a, DATE_SUB(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL -0.1 SECOND) 1970-01-01 01:00:01.000000 1970-01-01 01:00:01.100000 1970-01-01 01:00:01.000001 1970-01-01 01:00:01.100001 1971-01-01 01:00:00.000000 1971-01-01 01:00:00.100000 1971-01-01 01:00:00.000001 1971-01-01 01:00:00.100001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.100000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.100001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.100000 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.100001 CREATE TABLE t2 AS SELECT DATE_ADD(a, INTERVAL 1 SECOND), DATE_SUB(a, INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `DATE_ADD(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(DATE_ADD(a, INTERVAL 1 MINUTE)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MAX(DATE_ADD(a, INTERVAL 1 MINUTE))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2; MAX(DATE_ADD(a, INTERVAL 1 MINUTE)) 2001-01-01 01:01:00.000001 DROP TABLE t2; DROP TABLE t1; # # Testing explicit CAST of datetime hybrid functions to DATETIME # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT CAST(ADDTIME('20:10:10', 10) AS DATETIME); CAST(ADDTIME('20:10:10', 10) AS DATETIME) 2001-01-01 20:10:20 SELECT CAST(CAST('10:10:20' AS TIME) + INTERVAL 10 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME) + INTERVAL 10 HOUR AS DATETIME) 2001-01-01 20:10:20 SELECT CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 10 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 10 HOUR AS DATETIME) 2001-01-01 20:10:20 SELECT CAST(STR_TO_DATE('23:59:01','%H:%i:%s') AS DATETIME); CAST(STR_TO_DATE('23:59:01','%H:%i:%s') AS DATETIME) 2001-01-01 23:59:01 SELECT CAST(STR_TO_DATE('23:59:01.123','%H:%i:%s.%f') AS DATETIME(6)); CAST(STR_TO_DATE('23:59:01.123','%H:%i:%s.%f') AS DATETIME(6)) 2001-01-01 23:59:01.123000 SELECT CAST(ADDTIME('40:10:10', 10) as DATETIME); CAST(ADDTIME('40:10:10', 10) as DATETIME) 2001-01-02 16:10:20 SELECT CAST(CAST('10:10:20' AS TIME) + INTERVAL 30 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME) + INTERVAL 30 HOUR AS DATETIME) 2001-01-02 16:10:20 SELECT CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 30 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 30 HOUR AS DATETIME) 2001-01-02 16:10:20 SET @@timestamp=default; # # Testing copy from TIMESTAMP to TIMESTAMP(6) and vice versa # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 01:02:03.123456', '0000-00-00 00:00:00'); UPDATE t1 SET b=a; SELECT b FROM t1; b 2001-01-01 01:02:03 UPDATE t1 SET b='2002-02-02 10:11:12'; UPDATE t1 SET a=b; SELECT a FROM t1; a 2002-02-02 10:11:12.000000 DROP TABLE t1; # # Testing ALTER from TIMESTAMP(6) to TIMESTAMP and vice versa # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); ALTER TABLE t1 MODIFY a TIMESTAMP(6); SELECT * FROM t1; a 2000-01-01 01:02:03.000000 UPDATE t1 SET a='2000-01-01 01:03:03.456'; SELECT * FROM t1; a 2000-01-01 01:03:03.456000 ALTER TABLE t1 MODIFY a TIMESTAMP; SELECT * FROM t1; a 2000-01-01 01:03:03 DROP TABLE t1; # # Testing ALTER between TIMESTAMP and BIGINT # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33', '2000-01-01 11:22:33'); ALTER TABLE t1 MODIFY a BIGINT, MODIFY b BIGINT; SELECT * FROM t1; a b 20000101112233 20000101112233 UPDATE t1 SET a=20000101112233, b=20000101112233; ALTER TABLE t1 MODIFY a TIMESTAMP, MODIFY b TIMESTAMP(6); SELECT * FROM t1; a b 2000-01-01 11:22:33 2000-01-01 11:22:33.000000 DROP TABLE t1; # # Testing ALTER between TIMESTAMP(6) and DOUBLE # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.1234'); ALTER TABLE t1 MODIFY a DOUBLE, MODIFY b DOUBLE; SELECT * FROM t1; a b 20010101112233 20010101112233.125 UPDATE t1 SET a=20010101101112, b=20010101101112.1; ALTER TABLE t1 MODIFY a TIMESTAMP, MODIFY b TIMESTAMP(6); SELECT * FROM t1; a b 2001-01-01 10:11:12 2001-01-01 10:11:12.100000 DROP TABLE t1; # # Testing ALTER between TIMESTAMP(6) and DECIMAL # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.1234'); ALTER TABLE t1 MODIFY a DECIMAL(30,6), MODIFY b DECIMAL(30,6); SELECT * FROM t1; a b 20010101112233.000000 20010101112233.123400 UPDATE t1 SET a=20010101112233, b=20010101112233.1234; ALTER TABLE t1 MODIFY a TIMESTAMP, MODIFY b TIMESTAMP(6); SELECT * FROM t1; a b 2001-01-01 11:22:33 2001-01-01 11:22:33.123400 DROP TABLE t1; # # Testing ALTER from TIMESTAMP to various other temporal types # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1'); ALTER TABLE t1 MODIFY a TIME(6), MODIFY b DATETIME(6), MODIFY c DATE; Warnings: Note 1265 Data truncated for column 'a' at row 1 Note 1265 Data truncated for column 'c' at row 1 SELECT * FROM t1; a b c 10:10:10.100000 2001-01-01 10:10:10.100000 2001-01-01 DROP TABLE t1; # # Testing INT value and CAST of TIMESTAMP(6) to various other types # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); SELECT CAST(a AS DATETIME) FROM t1; CAST(a AS DATETIME) 2001-01-01 11:22:33 SELECT CAST(a AS DATETIME(6)) FROM t1; CAST(a AS DATETIME(6)) 2001-01-01 11:22:33.123000 SELECT CAST(a AS TIME) FROM t1; CAST(a AS TIME) 11:22:33 SELECT CAST(a AS TIME(6)) FROM t1; CAST(a AS TIME(6)) 11:22:33.123000 SELECT a << 0 FROM t1; a << 0 20010101112233 SELECT CAST(a AS SIGNED) FROM t1; CAST(a AS SIGNED) 20010101112233 SELECT CAST(a AS UNSIGNED) FROM t1; CAST(a AS UNSIGNED) 20010101112233 SELECT CAST(a AS DECIMAL(30,6)) FROM t1; CAST(a AS DECIMAL(30,6)) 20010101112233.123000 SELECT CAST(a AS DECIMAL(30,3)) FROM t1; CAST(a AS DECIMAL(30,3)) 20010101112233.123 SELECT CAST(a AS CHAR) FROM t1; CAST(a AS CHAR) 2001-01-01 11:22:33.123000 SELECT CAST(a AS CHAR(6)) FROM t1; CAST(a AS CHAR(6)) 2001-0 Warnings: Warning 1292 Truncated incorrect CHAR(6) value: '2001-01-01 11:22:33.123000' CREATE TABLE t2 AS SELECT CAST(a AS CHAR) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) NOT NULL DEFAULT '' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT a, LENGTH(a) FROM t2; a LENGTH(a) 2001-01-01 11:22:33.123000 26 DROP TABLE t2; DROP TABLE t1; # # Testing that default precision in "DEFAULT CURRENT_TIMESTAMP(N)" # and "ON UPDATE CURRENT_TIMESTAMP(N)" is the same to the precision # of the field itself. # CREATE TABLE t1 (a TIMESTAMP(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(4) NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(4) NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(5) NOT NULL DEFAULT CURRENT_TIMESTAMP(5) ON UPDATE CURRENT_TIMESTAMP(5)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(5) NOT NULL DEFAULT CURRENT_TIMESTAMP(5) ON UPDATE CURRENT_TIMESTAMP(5) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing DEFAULT value # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing DEFAULT CURRENT_TIMESTAMP # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(0)); DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(1)); CREATE TABLE t2 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(2)); CREATE TABLE t3 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(3)); CREATE TABLE t4 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(4)); CREATE TABLE t5 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(5)); CREATE TABLE t6 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(6)); DROP TABLE t1, t2, t3, t4, t5, t6; CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP); DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a timestamp(3) NO CURRENT_TIMESTAMP(3) DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(4)); CREATE TABLE t2 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(5)); CREATE TABLE t3 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(6)); DROP TABLE t1, t2, t3; CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP); DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a timestamp(6) NO CURRENT_TIMESTAMP(6) DROP TABLE t1; CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(0)); DROP TABLE t1; CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(1)); CREATE TABLE t2 (a DATETIME DEFAULT CURRENT_TIMESTAMP(2)); CREATE TABLE t3 (a DATETIME DEFAULT CURRENT_TIMESTAMP(3)); CREATE TABLE t4 (a DATETIME DEFAULT CURRENT_TIMESTAMP(4)); CREATE TABLE t5 (a DATETIME DEFAULT CURRENT_TIMESTAMP(5)); CREATE TABLE t6 (a DATETIME DEFAULT CURRENT_TIMESTAMP(6)); DROP TABLE t1, t2, t3, t4, t5, t6; CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP); DROP TABLE t1; CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(3) YES CURRENT_TIMESTAMP(3) DROP TABLE t1; CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(4)); CREATE TABLE t2 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(5)); CREATE TABLE t3 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(6)); DROP TABLE t1, t2, t3; CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP); DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(6) YES CURRENT_TIMESTAMP(6) DROP TABLE t1; # # Testing that DEFAULT CURRENT_TIMESTAMP(n) truncates rather than rounds # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00.999999'); CREATE TABLE t1 ( a TIMESTAMP(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2), b DATETIME(2) DEFAULT CURRENT_TIMESTAMP(2) ); INSERT INTO t1 VALUES (DEFAULT, DEFAULT); INSERT INTO t1 VALUES (); SELECT CURRENT_TIMESTAMP(6); CURRENT_TIMESTAMP(6) 2001-01-01 00:00:00.999999 SELECT * FROM t1; a b 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing ON UPDATE CURRENT_TIMESTAMP # CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP); DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(0)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(1)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(2)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(4)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(5)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a timestamp(6) NO 0000-00-00 00:00:00.000000 on update CURRENT_TIMESTAMP SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP); DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(0)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(1)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(2)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(4)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(5)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(6) YES NULL on update CURRENT_TIMESTAMP SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Testing that ON UPDATE CURRENT_TIMESTAMP(n) truncates rather than rounds # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00.999999'); CREATE TABLE t1 ( a TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2), b DATETIME(2) ON UPDATE CURRENT_TIMESTAMP(2), c INT); INSERT INTO t1 VALUES ('1999-01-01 00:00:00', '1999-01-01 00:00:00', 1); SELECT * FROM t1; a b c 1999-01-01 00:00:00.00 1999-01-01 00:00:00.00 1 UPDATE t1 SET c=2; SELECT CURRENT_TIMESTAMP(6); CURRENT_TIMESTAMP(6) 2001-01-01 00:00:00.999999 SELECT * FROM t1; a b c 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 2 DROP TABLE t1; SET timestamp=DEFAULT; # # Mixing varios TIMESTAMP(N) in CASE # CREATE TABLE t1 ( t0 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, t1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.0'); CREATE TABLE t2 AS SELECT CASE WHEN 1 THEN t0 ELSE t1 END, CASE WHEN 1 THEN t0 ELSE t3 END, CASE WHEN 1 THEN t0 ELSE t4 END, CASE WHEN 1 THEN t0 ELSE t6 END, CASE WHEN 1 THEN t1 ELSE t0 END, CASE WHEN 1 THEN t1 ELSE t3 END, CASE WHEN 1 THEN t1 ELSE t4 END, CASE WHEN 1 THEN t1 ELSE t6 END, CASE WHEN 1 THEN t3 ELSE t0 END, CASE WHEN 1 THEN t3 ELSE t1 END, CASE WHEN 1 THEN t3 ELSE t4 END, CASE WHEN 1 THEN t3 ELSE t6 END, CASE WHEN 1 THEN t4 ELSE t0 END, CASE WHEN 1 THEN t4 ELSE t1 END, CASE WHEN 1 THEN t4 ELSE t3 END, CASE WHEN 1 THEN t4 ELSE t6 END, CASE WHEN 1 THEN t6 ELSE t0 END, CASE WHEN 1 THEN t6 ELSE t1 END, CASE WHEN 1 THEN t6 ELSE t3 END, CASE WHEN 1 THEN t6 ELSE t4 END FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CASE WHEN 1 THEN t0 ELSE t1 END` timestamp(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `CASE WHEN 1 THEN t0 ELSE t3 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t0 ELSE t4 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t0 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t1 ELSE t0 END` timestamp(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `CASE WHEN 1 THEN t1 ELSE t3 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t1 ELSE t4 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t1 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t3 ELSE t0 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t3 ELSE t1 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t3 ELSE t4 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t3 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t4 ELSE t0 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t4 ELSE t1 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t4 ELSE t3 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t4 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t0 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t1 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t3 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t4 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing various TIMESTAMP(N) in COALESCE # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00.0', d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00.0', e TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.0', f TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0'); CREATE TABLE t2 AS SELECT COALESCE(a, b), COALESCE(c, b), COALESCE(c, d), COALESCE(e, f), COALESCE(c, e), COALESCE(c, f) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `COALESCE(a, b)` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `COALESCE(c, b)` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `COALESCE(c, d)` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `COALESCE(e, f)` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `COALESCE(c, e)` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `COALESCE(c, f)` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT CONCAT(COALESCE(a, b)), CONCAT(COALESCE(c, b)), CONCAT(COALESCE(c, d)), CONCAT(COALESCE(e, f)), CONCAT(COALESCE(c, e)), CONCAT(COALESCE(c, f)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CONCAT(COALESCE(a, b))` varchar(26) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, b))` varchar(26) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, d))` varchar(19) NOT NULL DEFAULT '', `CONCAT(COALESCE(e, f))` varchar(24) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, e))` varchar(23) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, f))` varchar(24) NOT NULL DEFAULT '' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing TIMESTAMP(6) with another TIMESTAMP(6) in IF # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing TIMESTAMP(N) and TIMESTAMP(M) in IF # CREATE TABLE t1 (a TIMESTAMP(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1), b TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT IF(1, a, b), IF(1, b, a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `IF(1, a, b)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `IF(1, b, a)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Mixing TIMESTAMP(6) NOT NULL with another TIMESTAMP(6) NOT NULL # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(6) and TIMESTAMP(6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(n) # CREATE TABLE t1 (t0 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, t1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0'); CREATE TABLE t2 AS SELECT t0 FROM t1 UNION SELECT t1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0` timestamp(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT t1 FROM t1 UNION SELECT t3 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t1` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT t3 FROM t1 UNION SELECT t4 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t3` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000' ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(6) and TIMESTAMP / DATE / DATETIME # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c DATE NOT NULL, d DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456','2001-01-01','2001-01-01 20:20:20.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra a timestamp(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT a FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra b timestamp(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY b; b 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT c FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra c datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY c; c 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra a datetime(6) YES NULL SELECT * FROM t2 ORDER BY a; a 2001-01-01 11:22:33.000000 2001-01-01 20:20:20.123456 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT c FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra b datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY b; b 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; CREATE TABLE t2 AS SELECT c FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra c datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY c; c 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(6) and various other types # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b BIGINT, c DOUBLE, d DECIMAL(20,6), e VARCHAR(20)); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT c FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT e FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t2; DROP TABLE t1; # # Testing TIMESTAMP(6) field in combination with DATETIME type functions # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:00:00.123456', '10:00:00.123456'); INSERT INTO t1 VALUES ('2001-01-01 10:00:00', '10:00:00'); SELECT * FROM t1 WHERE a=TIMESTAMP('2001-01-01', b); a b 2001-01-01 10:00:00.123456 10:00:00.123456 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00'); a b 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00.123456'); a b 2001-01-01 10:00:00.123456 10:00:00.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIMESTAMP, CURRENT_TIME); SELECT COUNT(*) FROM t1 WHERE a <= CURRENT_TIMESTAMP; COUNT(*) 1 SELECT COUNT(*) FROM t1 WHERE a >= SUBTIME(CURRENT_TIMESTAMP, '10:00:00'); COUNT(*) 1 DROP TABLE t1; # # Testing partitions # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)) PARTITION BY KEY(a) PARTITIONS 4; INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000010'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000011'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000012'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000013'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000014'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000015'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000016'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000110'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000111'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000112'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000113'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000114'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000115'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000116'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000210'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000211'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000212'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000213'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000214'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000215'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000216'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000006'); SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000215 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000003 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000216 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000004 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000213 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000005 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000214 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 2001-01-01 00:00:02.000002 2001-01-01 00:00:02.000006 ALTER TABLE t1 PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN ('2001-01-01 00:00:00.000200'), PARTITION p1 VALUES LESS THAN ('2001-01-01 00:00:01'), PARTITION p2 VALUES LESS THAN ('2001-01-01 00:00:02.000003'), PARTITION p3 VALUES LESS THAN MAXVALUE ); ERROR HY000: Field 'a' is of a not allowed type for this type of partitioning SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000215 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000003 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000216 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000004 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000213 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000005 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000214 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 2001-01-01 00:00:02.000002 2001-01-01 00:00:02.000006 DROP TABLE t1; # # CAST from TIMESTAMP to TATETIME # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.123456'); CREATE TABLE t2 AS SELECT CAST(a AS DATETIME), CAST(b AS DATETIME) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME)` datetime DEFAULT NULL, `CAST(b AS DATETIME)` datetime DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2; CAST(a AS DATETIME) CAST(b AS DATETIME) 2001-01-01 11:22:33 2001-01-01 11:22:33 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(0)), CAST(b AS DATETIME(0)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(0))` datetime DEFAULT NULL, `CAST(b AS DATETIME(0))` datetime DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2; CAST(a AS DATETIME(0)) CAST(b AS DATETIME(0)) 2001-01-01 11:22:33 2001-01-01 11:22:33 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(b AS DATETIME(6))` datetime(6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t2; CAST(a AS DATETIME(6)) CAST(b AS DATETIME(6)) 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # Testing comparison between a TIMESTAMP(6) field and a DATETIME(N) cast # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000003'); SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(6)); a 2001-01-01 10:11:12.000003 SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(0)); a 2001-01-01 10:11:12.000000 DROP TABLE t1; # # Testing TIMESTAMP subquery in combination with CAST to DATETIME(N) # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 23:00:00', '2001-01-01 23:00:00.123456'); SELECT CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1) 1 DROP TABLE t1; # # Testing TIMESTAMP column with function MICROSECOND # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.000001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.100001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.999999'); SELECT a, MICROSECOND(a) FROM t1; a MICROSECOND(a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 SELECT a, EXTRACT(MICROSECOND FROM a) FROM t1; a EXTRACT(MICROSECOND FROM a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 DROP TABLE t1; # # Testing PS # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; SET @a='2001-01-01 11:22:33.123456'; SET @b=20010101112233.123456; SET @c=0.123456e0; EXECUTE stmt USING @a; EXECUTE stmt USING @c; Warnings: Warning 1265 Data truncated for column 'a' at row 1 DEALLOCATE PREPARE stmt; SELECT * FROM t1; a 2001-01-01 11:22:33.123456 0000-00-00 00:00:00.000000 PREPARE stmt FROM 'SELECT * FROM t1 WHERE a=?'; EXECUTE stmt USING @a; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @b; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @c; a DEALLOCATE PREPARE stmt; DROP TABLE t1; # # Testing TIMESTAMP(6) and user variables # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.100000'); SELECT * FROM t1; a 2001-01-01 11:22:33.123456 2001-01-01 00:00:00.100000 SET @a='2001-01-01 11:22:33.123456'; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=20010101112233.123456; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=20010101000000.1e0; SELECT @a; @a 20010101000000.1 SELECT * FROM t1 WHERE a=@a; a SET @a=NULL; SELECT a INTO @a FROM t1 LIMIT 1; SELECT @a; @a 2001-01-01 11:22:33.123456 DROP TABLE t1; CREATE TABLE t1 AS SELECT @a AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` longtext ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t1; a 2001-01-01 11:22:33.123456 DROP TABLE t1; # # Testing SP # CREATE PROCEDURE p1 () BEGIN DECLARE a TIMESTAMP(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIMESTAMP(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1 (a TIMESTAMP(6)) BEGIN SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(a TIMESTAMP(6)) BEGIN SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(20010101112233)// a 2001-01-01 11:22:33.000000 CALL p1(20010101112233.123)// a 2001-01-01 11:22:33.123000 CALL p1(0.123e0)// a 0000-00-00 00:00:00.000000 Warnings: Warning 1265 Data truncated for column 'a' at row 1 CALL p1('2001-01-01 11:22:33.123')// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1() BEGIN DECLARE a TIMESTAMP(6); CREATE TABLE t1 AS SELECT a; # replace_regex /ENGINE=[a-zA-Z]*/ENGINE=ENGINE/; SHOW CREATE TABLE t1; DROP TABLE t1; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIMESTAMP(6); CREATE TABLE t1 AS SELECT a; # replace_regex /ENGINE=[a-zA-Z]*/ENGINE=ENGINE/; SHOW CREATE TABLE t1; DROP TABLE t1; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NULL DEFAULT NULL ) ENGINE=TokuDB DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP PROCEDURE p1// CREATE FUNCTION p1 (a TIMESTAMP(6)) RETURNS TIMESTAMP(6) BEGIN RETURN a; END// SHOW CREATE FUNCTION p1// Function sql_mode Create Function character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `p1`(a TIMESTAMP(6)) RETURNS timestamp(6) BEGIN RETURN a; END latin1 latin1_swedish_ci latin1_swedish_ci SELECT p1(20010101112233)// p1(20010101112233) 2001-01-01 11:22:33.000000 SELECT p1(20010101112233.123)// p1(20010101112233.123) 2001-01-01 11:22:33.123000 DROP FUNCTION p1// # # Testing INFORMATION_SCHEMA.COLUMNS # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';; TABLE_CATALOG def TABLE_SCHEMA test TABLE_NAME t1 COLUMN_NAME a ORDINAL_POSITION 1 COLUMN_DEFAULT CURRENT_TIMESTAMP(6) IS_NULLABLE NO DATA_TYPE timestamp CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION 6 CHARACTER_SET_NAME NULL COLLATION_NAME NULL COLUMN_TYPE timestamp(6) COLUMN_KEY EXTRA on update CURRENT_TIMESTAMP PRIVILEGES # COLUMN_COMMENT DROP TABLE t1; # # SELECT from a subquery # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM (SELECT * FROM t1) t12; a 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN and = subqueries # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM t1 WHERE a IN (SELECT MIN(a) FROM t1); a 2001-01-01 00:00:00.123456 SELECT * FROM t1 WHERE a = (SELECT a FROM t1 ORDER BY a DESC LIMIT 1); a 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN subquery + GROUP # CREATE TABLE t1 (id INT, a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:00:00.123456'), (1, '2001-01-01 11:00:00.123456'); INSERT INTO t1 VALUES (2, '2001-01-01 00:01:00.123456'), (2, '2001-01-01 11:01:00.123456'); SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM t1 GROUP BY id); id a 1 2001-01-01 11:00:00.123456 2 2001-01-01 11:01:00.123456 DROP TABLE t1; # # Testing VIEW # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); CREATE VIEW v1 AS SELECT a FROM t1; SELECT * FROM v1 WHERE a='2001-01-01 00:00:00.123456'; a 2001-01-01 00:00:00.123456 SELECT MIN(a), MAX(a) FROM v1; MIN(a) MAX(a) 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; CREATE VIEW v1 AS SELECT MAX(a) AS a FROM t1; SELECT * FROM v1; a 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a=(SELECT a FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; DROP TABLE t1; # # Testing default value # CREATE TABLE t1 (a DATETIME(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 (a) VALUES (CURRENT_TIMESTAMP(6)); SELECT a=b FROM t1; a=b 1 DROP TABLE t1; SET time_zone=DEFAULT; CREATE TABLE t1 (a DATETIME(6), b TIME(6)); INSERT INTO t1 VALUES ('1212-12-12 21:21:21.555555', '00:00:00.21'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.999999', '00:00:00.000001'); SELECT a + b FROM t1; a + b 12121212212121.765555 99991231235960.000000 DROP TABLE t1; # # Testing that IF always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT if(0, dt2, t3), CONCAT(if(0, dt2, t3)) FROM t1; if(0, dt2, t3) CONCAT(if(0, dt2, t3)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(1, dt2, t3), CONCAT(if(1, dt2, t3)) FROM t1; if(1, dt2, t3) CONCAT(if(1, dt2, t3)) 2001-01-01 00:00:00.120 2001-01-01 00:00:00.120 SELECT if(0, t3, dt2), CONCAT(if(0, t3, dt2)) FROM t1; if(0, t3, dt2) CONCAT(if(0, t3, dt2)) 2001-01-01 00:00:00.120 2001-01-01 00:00:00.120 SELECT if(1, t3, dt2), CONCAT(if(1, t3, dt2)) FROM t1; if(1, t3, dt2) CONCAT(if(1, t3, dt2)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(0, t3, d), CONCAT(if(0, t3, d)) FROM t1; if(0, t3, d) CONCAT(if(0, t3, d)) 2002-01-01 00:00:00.000 2002-01-01 00:00:00.000 SELECT if(1, t3, d), CONCAT(if(1, t3, d)) FROM t1; if(1, t3, d) CONCAT(if(1, t3, d)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(0, d, t3), CONCAT(if(0, d, t3)) FROM t1; if(0, d, t3) CONCAT(if(0, d, t3)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(1, d, t3), CONCAT(if(1, d, t3)) FROM t1; if(1, d, t3) CONCAT(if(1, d, t3)) 2002-01-01 00:00:00.000 2002-01-01 00:00:00.000 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that CASE always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT CASE WHEN 0 THEN dt2 ELSE t3 END FROM t1; CASE WHEN 0 THEN dt2 ELSE t3 END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 0 THEN dt2 ELSE t3 END) FROM t1; CONCAT(CASE WHEN 0 THEN dt2 ELSE t3 END) 2011-11-10 00:00:00.567 SELECT CASE WHEN 1 THEN dt2 ELSE t3 END FROM t1; CASE WHEN 1 THEN dt2 ELSE t3 END 2001-01-01 00:00:00.120 SELECT CONCAT(CASE WHEN 1 THEN dt2 ELSE t3 END) FROM t1; CONCAT(CASE WHEN 1 THEN dt2 ELSE t3 END) 2001-01-01 00:00:00.120 SELECT CASE WHEN 0 THEN t3 ELSE dt2 END FROM t1; CASE WHEN 0 THEN t3 ELSE dt2 END 2001-01-01 00:00:00.120 SELECT CONCAT(CASE WHEN 0 THEN t3 ELSE dt2 END) FROM t1; CONCAT(CASE WHEN 0 THEN t3 ELSE dt2 END) 2001-01-01 00:00:00.120 SELECT CASE WHEN 1 THEN t3 ELSE dt2 END FROM t1; CASE WHEN 1 THEN t3 ELSE dt2 END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 1 THEN t3 ELSE dt2 END) FROM t1; CONCAT(CASE WHEN 1 THEN t3 ELSE dt2 END) 2011-11-10 00:00:00.567 SELECT CASE WHEN 0 THEN d ELSE t3 END FROM t1; CASE WHEN 0 THEN d ELSE t3 END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 0 THEN d ELSE t3 END) FROM t1; CONCAT(CASE WHEN 0 THEN d ELSE t3 END) 2011-11-10 00:00:00.567 SELECT CASE WHEN 1 THEN d ELSE t3 END FROM t1; CASE WHEN 1 THEN d ELSE t3 END 2002-01-01 00:00:00.000 SELECT CONCAT(CASE WHEN 1 THEN d ELSE t3 END) FROM t1; CONCAT(CASE WHEN 1 THEN d ELSE t3 END) 2002-01-01 00:00:00.000 SELECT CASE WHEN 0 THEN t3 ELSE d END FROM t1; CASE WHEN 0 THEN t3 ELSE d END 2002-01-01 00:00:00.000 SELECT CONCAT(CASE WHEN 0 THEN t3 ELSE d END) FROM t1; CONCAT(CASE WHEN 0 THEN t3 ELSE d END) 2002-01-01 00:00:00.000 SELECT CASE WHEN 1 THEN t3 ELSE d END FROM t1; CASE WHEN 1 THEN t3 ELSE d END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 1 THEN t3 ELSE d END) FROM t1; CONCAT(CASE WHEN 1 THEN t3 ELSE d END) 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that COALESCE always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT COALESCE(dt2, t3) FROM t1; COALESCE(dt2, t3) 2001-01-01 00:00:00.120 SELECT CONCAT(COALESCE(dt2, t3)) FROM t1; CONCAT(COALESCE(dt2, t3)) 2001-01-01 00:00:00.120 SELECT COALESCE(t3, dt2) FROM t1; COALESCE(t3, dt2) 2011-11-10 00:00:00.567 SELECT CONCAT(COALESCE(t3, dt2)) FROM t1; CONCAT(COALESCE(t3, dt2)) 2011-11-10 00:00:00.567 SELECT COALESCE(d, t3) FROM t1; COALESCE(d, t3) 2002-01-01 00:00:00.000 SELECT CONCAT(COALESCE(d, t3)) FROM t1; CONCAT(COALESCE(d, t3)) 2002-01-01 00:00:00.000 SELECT COALESCE(t3, d) FROM t1; COALESCE(t3, d) 2011-11-10 00:00:00.567 SELECT CONCAT(COALESCE(t3, d)) FROM t1; CONCAT(COALESCE(t3, d)) 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that IFNULL always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT IFNULL(dt2, t3) FROM t1; IFNULL(dt2, t3) 2001-01-01 00:00:00.120 SELECT CONCAT(IFNULL(dt2, t3)) FROM t1; CONCAT(IFNULL(dt2, t3)) 2001-01-01 00:00:00.120 SELECT IFNULL(t3, dt2) FROM t1; IFNULL(t3, dt2) 2011-11-10 00:00:00.567 SELECT CONCAT(IFNULL(t3, dt2)) FROM t1; CONCAT(IFNULL(t3, dt2)) 2011-11-10 00:00:00.567 SELECT IFNULL(d, t3) FROM t1; IFNULL(d, t3) 2002-01-01 00:00:00.000 SELECT CONCAT(IFNULL(d, t3)) FROM t1; CONCAT(IFNULL(d, t3)) 2002-01-01 00:00:00.000 SELECT IFNULL(t3, d) FROM t1; IFNULL(t3, d) 2011-11-10 00:00:00.567 SELECT CONCAT(IFNULL(t3, d)) FROM t1; CONCAT(IFNULL(t3, d)) 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that LEAST always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); INSERT INTO t1 VALUES ('2012-01-01 00:00:00.12', '00:00:00.567', '2013-01-01'); SELECT LEAST(dt2, t3) FROM t1; LEAST(dt2, t3) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT CONCAT(LEAST(dt2, t3)) FROM t1; CONCAT(LEAST(dt2, t3)) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT LEAST(t3, dt2) FROM t1; LEAST(t3, dt2) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT CONCAT(LEAST(t3, dt2)) FROM t1; CONCAT(LEAST(t3, dt2)) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT LEAST(d, t3) FROM t1; LEAST(d, t3) 2002-01-01 2011-11-10 SELECT CONCAT(LEAST(d, t3)) FROM t1; CONCAT(LEAST(d, t3)) 2002-01-01 2011-11-10 SELECT LEAST(t3, d) FROM t1; LEAST(t3, d) 00:00:00.567 00:00:00.567 SELECT CONCAT(LEAST(t3, d)) FROM t1; CONCAT(LEAST(t3, d)) 00:00:00.567 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that GREATEST always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); INSERT INTO t1 VALUES ('2012-01-01 00:00:00.12', '00:00:00.567', '2013-01-01'); SELECT GREATEST(dt2, t3) FROM t1; GREATEST(dt2, t3) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT CONCAT(GREATEST(dt2, t3)) FROM t1; CONCAT(GREATEST(dt2, t3)) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT GREATEST(t3, dt2) FROM t1; GREATEST(t3, dt2) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT CONCAT(GREATEST(t3, dt2)) FROM t1; CONCAT(GREATEST(t3, dt2)) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT GREATEST(d, t3) FROM t1; GREATEST(d, t3) 2011-11-10 2013-01-01 SELECT CONCAT(GREATEST(d, t3)) FROM t1; CONCAT(GREATEST(d, t3)) 2011-11-10 2013-01-01 SELECT GREATEST(t3, d) FROM t1; GREATEST(t3, d) 792:00:00.000 792:00:00.000 SELECT CONCAT(GREATEST(t3, d)) FROM t1; CONCAT(GREATEST(t3, d)) 792:00:00.000 792:00:00.000 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that hybrid type functions correctly convert # from DATETIME to TIME # CREATE TABLE t1 (a DATETIME(3)); INSERT INTO t1 VALUES ('2001-01-01 10:20:30.123'); SELECT CAST(IF(0, a, a) AS TIME(6)) FROM t1; CAST(IF(0, a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(COALESCE(a, a) AS TIME(6)) FROM t1; CAST(COALESCE(a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(IFNULL(a, a) AS TIME(6)) FROM t1; CAST(IFNULL(a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(CASE WHEN 0 THEN a ELSE a END AS TIME(6)) FROM t1; CAST(CASE WHEN 0 THEN a ELSE a END AS TIME(6)) 10:20:30.123000 SELECT CAST(GREATEST(a, a) AS TIME(6)) FROM t1; CAST(GREATEST(a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(LEAST(a, a) AS TIME(6)) FROM t1; CAST(LEAST(a, a) AS TIME(6)) 10:20:30.123000 DROP TABLE t1; # # Testing that hybrid type functions correctly convert # from TIME to DATETIME # SET timestamp=UNIX_TIMESTAMP('2011-11-10 00:00:00'); CREATE TABLE t1 (a TIME(3)); INSERT INTO t1 VALUES ('10:20:30.123'); SELECT CAST(IF(0, a, a) AS DATETIME(6)) FROM t1; CAST(IF(0, a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(COALESCE(a, a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(IFNULL(a, a) AS DATETIME(6)) FROM t1; CAST(IFNULL(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(CASE WHEN 0 THEN a ELSE a END AS DATETIME(6)) FROM t1; CAST(CASE WHEN 0 THEN a ELSE a END AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(GREATEST(a, a) AS DATETIME(6)) FROM t1; CAST(GREATEST(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(LEAST(a, a) AS DATETIME(6)) FROM t1; CAST(LEAST(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 DROP TABLE t1; SET timestamp=DEFAULT; # # Storing TIME functions into VARCHAR column # SET @@timestamp=1000000000; CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES (CAST('00:00:00' AS TIME)); INSERT INTO t1 VALUES (CAST('00:00:00' AS TIME(6))); SELECT * FROM t1; a 00:00:00 00:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (SEC_TO_TIME(10)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.1)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.01)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.001)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.0001)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.00001)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.000001)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.0)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.1)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.12)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.123)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.1234)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.12345)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.123456)); SELECT * FROM t1; a 00:00:10 -00:00:00.1 -00:00:00.01 -00:00:00.001 -00:00:00.0001 -00:00:00.00001 -00:00:00.000001 00:00:10.0 00:00:10.1 00:00:10.12 00:00:10.123 00:00:10.1234 00:00:10.12345 00:00:10.123456 DELETE FROM t1; INSERT INTO t1 VALUES (TIMEDIFF(NOW(), NOW())); INSERT INTO t1 VALUES (TIMEDIFF(NOW(6), NOW(6))); SELECT * FROM t1; a 00:00:00 00:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (MAKETIME(10, 10, 10)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.1)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.12)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.123)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.1234)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.12345)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.123456)); SELECT * FROM t1; a 10:10:10 10:10:10.1 10:10:10.12 10:10:10.123 10:10:10.1234 10:10:10.12345 10:10:10.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIME()); INSERT INTO t1 VALUES (CURRENT_TIME(6)); SELECT LENGTH(a) FROM t1; LENGTH(a) 8 15 DELETE FROM t1; DROP TABLE t1; SET @@timestamp=default; # # Storing DATETIME functions into VARCHAR column # SET @@time_zone='+00:00'; SET @@timestamp=1000000000; CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES (CAST('2001-01-01 00:00:00' AS DATETIME)); INSERT INTO t1 VALUES (CAST('2001-01-01 00:00:00' AS DATETIME(6))); SELECT * FROM t1; a 2001-01-01 00:00:00 2001-01-01 00:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.0)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.1)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.12)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.123)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.1234)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.12345)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.123456)); SELECT * FROM t1; a 2001-09-09 01:46:40 2001-09-09 01:46:40.0 2001-09-09 01:46:40.1 2001-09-09 01:46:40.12 2001-09-09 01:46:40.123 2001-09-09 01:46:40.1234 2001-09-09 01:46:40.12345 2001-09-09 01:46:40.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CONVERT_TZ(CAST('2001-01-01 00:00:00' AS DATETIME), '+00:00', '+10:00')); INSERT INTO t1 VALUES (CONVERT_TZ(CAST('2001-01-01 00:00:00' AS DATETIME(6)), '+00:00', '+10:00')); SELECT * FROM t1; a 2001-01-01 10:00:00 2001-01-01 10:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIMESTAMP()); INSERT INTO t1 VALUES (CURRENT_TIMESTAMP(6)); SELECT LENGTH(a) FROM t1; LENGTH(a) 19 26 DELETE FROM t1; DROP TABLE t1; SET @@timestamp=default; SET @@time_zone=default; # # Storing DATE/TIME hybrid functions into VARCHAR column # SET @@time_zone='+00:00'; SET @@timestamp=1000000000; CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES (ADDTIME('10:10:10', 10)); INSERT INTO t1 VALUES (ADDTIME('10:10:10', 10.123456)); INSERT INTO t1 VALUES (ADDTIME('10:10:10.000000', 10)); INSERT INTO t1 VALUES (ADDTIME('10:10:10.123456', 10)); SELECT * FROM t1; a 10:10:20 10:10:20.123456 10:10:20 10:10:20.123456 DELETE FROM t1; INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIME, 10)); INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIME, 10.123456)); INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIMESTAMP, 10)); INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIMESTAMP, 10.123456)); SELECT * FROM t1; a 01:46:50 01:46:50.123456 2001-09-09 01:46:50 2001-09-09 01:46:50.123456 DELETE FROM t1; INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00', INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00', INTERVAL 1.1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00.000000', INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00.123456', INTERVAL 1 SECOND)); SELECT * FROM t1; a 2001-01-01 00:00:01 2001-01-01 00:00:01.1 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.123456 DELETE FROM t1; INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME(6)), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME), INTERVAL 1.1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME(6)), INTERVAL 1.1 SECOND)); SELECT * FROM t1; a 2001-01-01 00:00:01 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.1 2001-01-01 00:00:01.100000 DELETE FROM t1; INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME(6)), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME), INTERVAL 1.1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME(6)), INTERVAL 1.1 SECOND)); SELECT * FROM t1; a 00:00:01 00:00:01.000000 00:00:01.1 00:00:01.100000 DELETE FROM t1; INSERT INTO t1 VALUES (STR_TO_DATE('2000', '%Y')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10', '%Y %h')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 000000', '%Y %h %f')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 123456', '%Y %h %f')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 000000', '2000 %h 000000')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 123456', '2000 %h 123456')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 000000', '2000 %h %f')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 123456', '2000 %h %f')); SELECT * FROM t1; a 2000-00-00 2000-00-00 10:00:00 2000-00-00 10:00:00.000000 2000-00-00 10:00:00.123456 10:00:00 10:00:00 10:00:00.000000 10:00:00.123456 DELETE FROM t1; DROP TABLE t1; SET @@timestamp=default; SET @@time_zone=default; # # Testing ALTER from DATE to various other temporal types # CREATE TABLE t1 (a DATE, b DATE, c DATE); INSERT INTO t1 VALUES ('2001-01-01', '2001-01-01', '2001-01-01'); ALTER TABLE t1 MODIFY a DATETIME(6), MODIFY b TIMESTAMP(6), MODIFY c TIME(6); Warnings: Note 1265 Data truncated for column 'c' at row 1 SELECT * FROM t1; a b c 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000000 00:00:00.000000 DROP TABLE t1; # # Examples from the WL#946 section "Literals" # CREATE TABLE t1 (datetime_column DATETIME(1)); INSERT INTO t1 VALUES ('0000/1/1T1.23'); SELECT * FROM t1; datetime_column 0000-01-01 01:23:00.0 DROP TABLE t1; CREATE TABLE t1 (datetime_column DATETIME(1)); INSERT INTO t1 VALUES ('1111.11.11 11.11.11.55'); SELECT * FROM t1; datetime_column 1111-11-11 11:11:11.5 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(1)); INSERT INTO t1 VALUES ('1.1'); SELECT * FROM t1; time_column 00:00:01.1 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(1)); INSERT INTO t1 VALUES ('1:2:3:4'); Warnings: Warning 1265 Data truncated for column 'time_column' at row 1 SELECT * FROM t1; time_column 01:02:03.0 DROP TABLE t1; CREATE TABLE t1 (datetime_column DATETIME(2)); INSERT INTO t1 VALUES ('73-1-1 1:1:1.2'); SELECT * FROM t1; datetime_column 1973-01-01 01:01:01.20 DROP TABLE t1; CREATE TABLE t1 (datetime_column DATETIME(2)); INSERT INTO t1 VALUES (1101010101.55); SELECT * FROM t1; datetime_column 2000-11-01 01:01:01.55 DROP TABLE t1; SELECT TIMEDIFF('00:00:00.1', '00:00:00.3'); TIMEDIFF('00:00:00.1', '00:00:00.3') -00:00:00.2 # # Examples from the WL#946 section "Treat like decimals" # CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 SET time_column=TIME'1.000001'; SELECT * FROM t1; time_column 00:00:01.000001 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 SET time_column=TIME'1.0000005'; Warnings: Note 1292 Truncated incorrect time value: '1.0000005' SELECT * FROM t1; time_column 00:00:01.000000 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 SET time_column=TIME'1.0000005' + 0.000001; Warnings: Note 1292 Truncated incorrect time value: '1.0000005' SELECT * FROM t1; time_column 00:00:01.000001 DROP TABLE t1; SELECT TIME'00:00:00.1' = TIME'00:00:00.100'; TIME'00:00:00.1' = TIME'00:00:00.100' 1 CREATE TABLE t1 (timestamp_column TIMESTAMP(0)); INSERT INTO t1 SET timestamp_column = '2005-01-01 23:59:59.9'; SELECT * FROM t1; timestamp_column 2005-01-01 23:59:59 DROP TABLE t1; CREATE TABLE t1 (ts3 TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), ts2 TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT ts3 FROM t1 UNION SELECT ts2 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra ts3 timestamp(3) NO 0000-00-00 00:00:00.000 DROP TABLE t2; DROP TABLE t1; # # Examples from the WL#946 section "Behaviour changes" # CREATE TABLE t1 AS SELECT TIME'10:10:10' + INTERVAL 1 SECOND, ADDTIME(TIME'10:10:10', '1.1'); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME'10:10:10' + INTERVAL 1 SECOND time YES NULL ADDTIME(TIME'10:10:10', '1.1') time(1) YES NULL DROP TABLE t1; SELECT TIME'10:10:10' + INTERVAL .6 SECOND; TIME'10:10:10' + INTERVAL .6 SECOND 10:10:10.6 SELECT TIME('20:20:20') + INTERVAL .4 SECOND; TIME('20:20:20') + INTERVAL .4 SECOND 20:20:20.4 CREATE TABLE t1 AS SELECT TIMESTAMP'2001-01-01 00:00:00' + INTERVAL 1 MICROSECOND AS a; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(6) YES NULL DROP TABLE t1; SELECT ADDTIME('9999-01-01 00:00:00', '.1'); ADDTIME('9999-01-01 00:00:00', '.1') 9999-01-01 00:00:00.100000 SELECT ADDTIME(TIMESTAMP'9999-01-01 00:00:00', '.1'); ADDTIME(TIMESTAMP'9999-01-01 00:00:00', '.1') 9999-01-01 00:00:00.1 SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); SELECT CURRENT_TIME(6), CURRENT_TIME; CURRENT_TIME(6) CURRENT_TIME 10:20:30.000000 10:20:30 SET timestamp=DEFAULT; SET time_zone='+00:00'; SELECT FROM_UNIXTIME(0.5); FROM_UNIXTIME(0.5) 1970-01-01 00:00:00.5 SET time_zone=DEFAULT; CREATE TABLE t1 (s1 DATETIME); INSERT INTO t1 VALUES ('2000-12-31 23:59:59.9'); SELECT * FROM t1; s1 2000-12-31 23:59:59 DROP TABLE t1; SELECT SEC_TO_TIME(36000.123); SEC_TO_TIME(36000.123) 10:00:00.123 SET timestamp=1308300674; SELECT @@timestamp; @@timestamp 1308300674.000000 CREATE TABLE t1 AS SELECT @@timestamp; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra @@timestamp double(21,6) YES NULL DROP TABLE t1; SET timestamp=DEFAULT; # # Examples from the WL#946 section "Metadata" # CREATE TABLE t1 (a TIME(3)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a time(3) YES NULL DESC t1; Field Type Null Key Default Extra a time(3) YES NULL SHOW FIELDS FROM t1; Field Type Null Key Default Extra a time(3) YES NULL SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time(3) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' DROP TABLE t1; # # Bug#12546965 - 60990: INCORRECT DATE COMPARISON # CREATE TABLE t1 (first_usage DATE, last_recharge DATETIME, life_time SMALLINT(4) UNSIGNED); INSERT INTO t1 VALUES ('2011-04-27', null, 900); SELECT DATE_ADD(GREATEST(first_usage, IFNULL(last_recharge, first_usage)), INTERVAL life_time DAY ) as dt, DATE_ADD(GREATEST(first_usage, IFNULL(last_recharge, first_usage)), INTERVAL life_time DAY ) < DATE('2011-04-28') as exp FROM t1; dt exp 2013-10-13 00:00:00 0 DROP TABLE t1; # # Bug 12565857 - 61193: INCORRECT ROUNDING OF DATE DECIMAL(17,3) # SELECT TIME(20110512154559.616), DATE(20110512154559.616), DATE(FLOOR(20110512154559.616)); TIME(20110512154559.616) DATE(20110512154559.616) DATE(FLOOR(20110512154559.616)) 15:45:59.616 2011-05-12 2011-05-12 # # "SELECT 3 IN (SELECT MAX(a) FROM t1)" returned 0 instead of NULL # at some point of WL#946 development. # This case is not covered elsewhere in the tests. # CREATE TABLE t1 (a INT); SELECT 3 IN (SELECT MAX(a) FROM t1); 3 IN (SELECT MAX(a) FROM t1) NULL DROP TABLE t1; CREATE TABLE t1(s1 DATETIME(6), s2 TIME(6)); INSERT INTO t1 VALUES ('1212-12-12 21:21:21.555555', '00:00:00.21'); SELECT s1 + s2 FROM t1; s1 + s2 12121212212121.765555 DROP TABLE t1; CREATE TABLE t1 (s1 TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('1971-01-01 00:00:00.0000099'); Warnings: Note 1265 Data truncated for column 's1' at row 1 SELECT * FROM t1; s1 1971-01-01 00:00:00.000009 DROP TABLE t1; SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 10:00:00'); CREATE TABLE t1 (s0 TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0), s6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES (TIME'11:11:11.123456', TIME'11:11:11.123456'); SELECT * FROM t1; s0 s6 2001-01-01 11:11:11 2001-01-01 11:11:11.123456 DROP TABLE t1; SET @@timestamp=default; SET sql_mode='' /* not 'no_zero_in_date' */; CREATE TABLE t1 (s1 DATETIME); INSERT INTO t1 VALUES ('1000-00-01 00:00:00'); INSERT INTO t1 VALUES (TIMESTAMP'1000-00-01 00:00:00'); SELECT * FROM t1; s1 1000-00-01 00:00:00 1000-00-01 00:00:00 DROP TABLE t1; SET sql_mode=default; SELECT SYSDATE(6) LIKE '____-__-__ __:__:__.______'; SYSDATE(6) LIKE '____-__-__ __:__:__.______' 1 SELECT SYSDATE(6) NOT LIKE '%.000000' || SYSDATE(6) NOT LIKE '%.000000'; SYSDATE(6) NOT LIKE '%.000000' || SYSDATE(6) NOT LIKE '%.000000' 1 CREATE TABLE t1 (s1 DATETIME(2)); INSERT INTO t1 VALUES ('1970-01-01 11:11:11.1234'); SELECT * FROM t1; s1 1970-01-01 11:11:11.12 DROP TABLE t1; CREATE TABLE t1 (s1 DATETIME(2)); INSERT INTO t1 VALUES (TIMESTAMP '0001-01-01 00:00:00.05'); SELECT TIMESTAMPADD(second, 1, s1) FROM t1; TIMESTAMPADD(second, 1, s1) 0001-01-01 00:00:01.05 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIME'11:11:11.1234567'; Warnings: Note 1292 Truncated incorrect time value: '11:11:11.1234567' SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME'11:11:11.1234567' time(6) NO 00:00:00.000000 SELECT * FROM t1; TIME'11:11:11.1234567' 11:11:11.123456 DROP TABLE t1; CREATE TABLE t1 (s1 datetime(6)); INSERT INTO t1 VALUES ('2011-05-18 16:17:11.291816'); SELECT MAX(s1), MAX(s1 + 0), MAX(s1) FROM t1; MAX(s1) MAX(s1 + 0) MAX(s1) 2011-05-18 16:17:11.291816 20110518161711.291816 2011-05-18 16:17:11.291816 DROP TABLE t1; SELECT TIMESTAMP'2011-05-18 16:17:11.'; TIMESTAMP'2011-05-18 16:17:11.' 2011-05-18 16:17:11 SELECT TIMESTAMP('2011-05-18 16:17:11.2', '11.29'); TIMESTAMP('2011-05-18 16:17:11.2', '11.29') 2011-05-18 16:17:22.49 SELECT TIMESTAMPADD(second, 1, '2011-05-18 16:17:11.0'); TIMESTAMPADD(second, 1, '2011-05-18 16:17:11.0') 2011-05-18 16:17:12.0 SELECT DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1 SECOND); DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1 SECOND) 2011-05-18 16:17:12.0 SELECT TIMESTAMPADD(second, 1.1, '2011-05-18 16:17:11.0'); TIMESTAMPADD(second, 1.1, '2011-05-18 16:17:11.0') 2011-05-18 16:17:12.1 SELECT DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1.1 SECOND); DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1.1 SECOND) 2011-05-18 16:17:12.1 CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 VALUES (0); UPDATE t1 SET time_column=TIME '1.0000005'; Warnings: Note 1292 Truncated incorrect time value: '1.0000005' SELECT * FROM t1; time_column 00:00:01.000000 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 VALUES (0); UPDATE t1 SET time_column=TIME '1.0000005' + 0.000001; Warnings: Note 1292 Truncated incorrect time value: '1.0000005' SELECT * FROM t1; time_column 00:00:01.000001 DROP TABLE t1; CREATE TABLE t1 (timestamp_column TIMESTAMP(0)); INSERT INTO t1 VALUES (DEFAULT); UPDATE t1 SET timestamp_column = '2005-01-01 23:59:59.9'; SELECT * FROM t1; timestamp_column 2005-01-01 23:59:59 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIME('00:00:00.123'); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME('00:00:00.123') time(3) YES NULL SELECT * FROM t1; TIME('00:00:00.123') 00:00:00.123 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIMESTAMP('2000-01-01 00:00:00.123'); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIMESTAMP('2000-01-01 00:00:00.123') datetime(3) YES NULL SELECT * FROM t1; TIMESTAMP('2000-01-01 00:00:00.123') 2000-01-01 00:00:00.123 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIME'10:20:30.1234567'; Warnings: Note 1292 Truncated incorrect time value: '10:20:30.1234567' SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME'10:20:30.1234567' time(6) NO 00:00:00.000000 SELECT * FROM t1; TIME'10:20:30.1234567' 10:20:30.123456 DROP TABLE t1; CREATE TABLE t1 (a TIME(1)); INSERT INTO t1 VALUES ('1.1'); SELECT * FROM t1; a 00:00:01.1 DROP TABLE t1; SET time_zone='+00:00'; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 20:40:05.123456'); CREATE TABLE t1 AS SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6))` decimal(22,6) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 `compression`='tokudb_zlib' SELECT * FROM t1; UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)) 1316637605.123456 DROP TABLE t1; SET @@timestamp=DEFAULT; SET time_zone=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('1970-01-02 03:04:05.123456'); SELECT FROM_UNIXTIME(@@timestamp); FROM_UNIXTIME(@@timestamp) 1970-01-02 03:04:05.123456 SET @@timestamp=default; # # Bugs found by Saikumar during testing. # The below function calls made server crash. # SET TIMESTAMP=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT ADDTIME(UTC_DATE, '23:28:14.014837') FROM dual; ADDTIME(UTC_DATE, '23:28:14.014837') 2000-12-31 23:28:14.014837 SELECT SUBTIME(UTC_DATE, '04:44:03.014042') FROM dual ; SUBTIME(UTC_DATE, '04:44:03.014042') 2000-12-30 19:15:56.985958 SELECT TIMEDIFF(CURRENT_DATE, '2004-12-07') FROM dual; TIMEDIFF(CURRENT_DATE, '2004-12-07') NULL Warnings: Warning 1292 Truncated incorrect time value: '2004-12-07' SELECT TIMEDIFF('0000-00-00 00:00:00.00000', UTC_DATE) FROM dual; TIMEDIFF('0000-00-00 00:00:00.00000', UTC_DATE) NULL SELECT TIME(CURRENT_DATE) FROM dual; TIME(CURRENT_DATE) 00:00:00 CREATE TABLE t1 ( pk TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', PRIMARY KEY (pk) ) DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('2011-07-13 13:17:58.3'), ('2011-07-13 13:17:59.3'); SELECT EXTRACT(HOUR_SECOND FROM CURRENT_DATE) FROM t1; EXTRACT(HOUR_SECOND FROM CURRENT_DATE) 0 0 DROP TABLE t1; SET TIMESTAMP=DEFAULT; # # bug7 # CREATE TABLE t1 ( col_timestamp_2_not_null_key timestamp(2) NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_4_not_null_key datetime(4) NOT NULL, KEY col_timestamp_2_not_null_key (col_timestamp_2_not_null_key), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key)); UPDATE t1 SET col_datetime_4_not_null_key = 9 WHERE col_timestamp_2_not_null_key !=9; DROP TABLE t1; # # bug8 # CREATE TABLE t1 ( col_time_3_not_null_key time(3) NOT NULL, col_datetime_4_not_null_key datetime(4) NOT NULL, KEY col_time_3_not_null_key (col_time_3_not_null_key), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key)); SELECT col_time_3_not_null_key FROM t1 WHERE col_datetime_4_not_null_key > 7; col_time_3_not_null_key DROP TABLE t1; # # bug9 # CREATE TABLE t1 ( col_time_3_key time(3) DEFAULT NULL, col_datetime_5_not_null datetime(5) NOT NULL, pk datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', PRIMARY KEY (pk), KEY col_time_3_key (col_time_3_key)); INSERT INTO t1 VALUES (NULL,'2003-02-10 18:14:45.03977','2011-07-16 20:53:44.979841'), ('07:57:19.051','0000-00-00 00:00:00.00000','2011-07-16 20:53:45.979841'), ('05:18:39.031','0000-00-00 00:00:00.00000','2011-07-16 20:53:46.979841'), ('12:15:34.041','2001-12-22 00:00:00.00000','2011-07-16 20:53:47.979841'), ('03:40:59.005','0000-00-00 00:00:00.00000','2011-07-16 20:53:48.979841'), ('01:41:57.004','0000-00-00 00:00:00.00000','2011-07-16 20:53:49.979841'); SELECT col_datetime_5_not_null FROM t1 WHERE TIMESTAMPADD(QUARTER, 5, col_time_3_key); col_datetime_5_not_null Warnings: Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow DROP TABLE t1; # # bug10 # CREATE TABLE t1 ( col_time_1_not_null_key time(1) NOT NULL, col_time_2_key time(2) DEFAULT NULL, col_datetime_6_not_null_key datetime(6) NOT NULL, col_datetime_4_not_null_key datetime(4) NOT NULL, col_datetime_6_key datetime(6) DEFAULT NULL, col_timestamp_4_key timestamp(4) NULL DEFAULT '0000-00-00 00:00:00.0000', col_timestamp_5_key timestamp(5) NULL DEFAULT '0000-00-00 00:00:00.00000', col_datetime_key datetime DEFAULT NULL, col_datetime_5_not_null_key datetime(5) NOT NULL, col_time_5_key time(5) DEFAULT NULL, col_datetime_3_key datetime(3) DEFAULT NULL, pk datetime NOT NULL DEFAULT '0000-00-00 00:00:00', col_time_not_null_key time NOT NULL, col_time_4_not_null_key time(4) NOT NULL, PRIMARY KEY (pk), KEY col_time_1_not_null_key (col_time_1_not_null_key), KEY col_time_2_key (col_time_2_key), KEY col_datetime_6_not_null_key (col_datetime_6_not_null_key), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key), KEY col_datetime_6_key (col_datetime_6_key), KEY col_timestamp_4_key (col_timestamp_4_key), KEY col_timestamp_5_key (col_timestamp_5_key), KEY col_datetime_key (col_datetime_key), KEY col_datetime_5_not_null_key (col_datetime_5_not_null_key), KEY col_time_5_key (col_time_5_key), KEY col_datetime_3_key (col_datetime_3_key), KEY col_time_not_null_key (col_time_not_null_key), KEY col_time_4_not_null_key (col_time_4_not_null_key)) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; SELECT col_datetime_3_key , COUNT( col_timestamp_5_key ) FROM t1 FORCE KEY (PRIMARY, col_datetime_5_not_null_key, col_datetime_6_key, col_time_5_key, col_time_2_key) WHERE (col_time_4_not_null_key NOT BETWEEN '2002-01-01 21:50:38.023562' AND '20090504151448.022774' AND col_time_1_not_null_key IN ('2000-07-13 21:35:51.034786', '2004-10-13 19:51:18.029716', '2001-11-23 10:22:42.001689', '2001-12-07 06:56:47.034426', '20081109153313.042580' ) ) AND (col_timestamp_4_key BETWEEN '0000-00-00 00:00:00' AND '2008-06-16 10:42:11.032174' OR col_time_not_null_key BETWEEN '2007-02-13 14:29:42.008072' AND '2009-05-18 17:06:18.036503' ) AND ( (col_datetime_key <> '2004-09-06 19:57:07.024714') AND col_datetime_5_not_null_key NOT IN ('20061212182915.005997', '0000-00-00 00:00:00', '20000920051358.001283', '2000-09-03 00:07:36.061713' ) ) AND (col_datetime_4_not_null_key IS NULL OR col_time_5_key BETWEEN '20051201163954.001782' AND '0000-00-00 00:00:00') GROUP BY col_datetime_6_not_null_key; col_datetime_3_key COUNT( col_timestamp_5_key ) DROP TABLE t1; # # bug11 # CREATE TABLE t1 ( col_time_5 time(5) DEFAULT NULL, col_time_1_not_null time(1) NOT NULL, col_time_2_key time(2) DEFAULT NULL, col_timestamp_2_not_null timestamp(2) NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_not_null datetime NOT NULL, col_timestamp_3_not_null_key timestamp(3) NULL DEFAULT '0000-00-00 00:00:00.000', col_datetime_5_key datetime(5) DEFAULT NULL, pk time(3) NOT NULL DEFAULT '00:00:00.000', PRIMARY KEY (pk), KEY col_time_2_key (col_time_2_key), KEY col_timestamp_3_not_null_key (col_timestamp_3_not_null_key), KEY col_datetime_5_key (col_datetime_5_key)) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ( '00:20:00.00000', '15:50:06.1', '00:20:07.00', '0000-00-00 00:00:00.00', '2009-07-16 09:31:21', '2009-10-14 21:00:00.000', '0000-00-00 00:00:00.00000', '22:59:36.734'); SELECT col_datetime_5_key AS c1 FROM t1 WHERE col_datetime_not_null NOT BETWEEN col_time_5 AND LEAST(col_time_1_not_null, ADDDATE(CAST(col_time_2_key AS DATE), col_timestamp_2_not_null)) ORDER BY 1; c1 0000-00-00 00:00:00.00000 DROP TABLE t1; # # bug13 # SET timestamp=UNIX_TIMESTAMP('2011-07-31 10:00:00'); CREATE TABLE t1 ( col_datetime_2_not_null_key datetime(2) NOT NULL, col_datetime_5 datetime(5) DEFAULT NULL, col_time_key time DEFAULT NULL, col_time_not_null time NOT NULL, pk datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', PRIMARY KEY (pk), KEY col_datetime_2_not_null_key (col_datetime_2_not_null_key), KEY col_time_key (col_time_key)); INSERT INTO t1 VALUES ('2001-10-20 00:00:00.00','2001-09-20 11:18:18.03630','03:00:10','00:20:01','2011-07-19 17:37:06.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','08:30:41','00:20:01','2011-07-19 17:37:07.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','20:07:31','01:12:26','2011-07-19 17:37:08.26725'), ('2000-01-14 17:55:57.03','0000-00-00 00:00:00.00000','00:20:04','14:35:10','2011-07-19 17:37:09.26725'), ('2006-12-27 07:25:14.04',NULL,'08:07:59','07:58:50','2011-07-19 17:37:10.26725'), ('2000-10-17 22:03:12.01','0000-00-00 00:00:00.00000','00:20:02','23:21:51','2011-07-19 17:37:11.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','00:20:05','00:20:04','2011-07-19 17:37:12.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','00:20:04','23:19:52','2011-07-19 17:37:13.26725'), ('0000-00-00 00:00:00.00','2008-06-04 23:05:50.03642','00:20:03','22:28:03','2011-07-19 17:37:14.26725'), ('2000-10-22 23:52:09.01',NULL,'00:20:07','00:20:07','2011-07-19 17:37:15.26725'); SELECT col_datetime_2_not_null_key AS c1, col_time_not_null AS c2 FROM t1 WHERE pk = LEAST(STR_TO_DATE(DATE_FORMAT(col_time_key, CONCAT_WS( ':','%I','%m' )) , CONCAT_WS('-','%y','%H','%V','%k','%k' )), '0000-00-00') OR col_datetime_5 = CURRENT_DATE() ORDER BY 1; c1 c2 Warnings: Warning 1411 Incorrect datetime value: '03:07' for function str_to_date Warning 1411 Incorrect datetime value: '08:07' for function str_to_date Warning 1411 Incorrect datetime value: '08:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '08:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date DROP TABLE t1; SET timestamp=DEFAULT; # # bug15 # CREATE TABLE t1 ( col_datetime_5 datetime(5) DEFAULT NULL, col_timestamp_6_key timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', col_time_2_not_null time(2) NOT NULL, KEY col_timestamp_6_key (col_timestamp_6_key)) ENGINE=MEMORY DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (current_timestamp(5),current_timestamp(6),current_time(6)); SELECT col_datetime_5 AS c1 FROM t1 WHERE col_time_2_not_null = GREATEST(CURRENT_DATE(),col_timestamp_6_key) ORDER BY 1; c1 DROP TABLE t1; SET @@time_zone='+00:00'; CREATE TABLE t1 (col_datetime_4_not_null DATETIME(4) NOT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.0000'),('2006-05-12 07:06:44.0441'),('2007-11-08 00:00:00.0000'), ('2007-07-23 00:00:00.0000'),('2006-01-10 22:19:14.0158'),('2006-09-13 18:54:05.0013'), ('2002-03-26 00:00:00.0000'),('2002-10-22 10:53:06.0151'),('0000-00-00 00:00:00.0000'), ('2001-06-04 00:00:00.0000'),('0000-00-00 00:00:00.0000'),('2000-12-11 10:47:58.0505'), ('2009-04-21 20:01:40.0570'),('2007-03-12 10:48:41.0031'),('0000-00-00 00:00:00.0000'), ('2009-06-22 00:00:00.0000'),('2008-01-21 15:28:44.0592'),('2003-10-05 00:43:55.0577'), ('2002-11-04 00:46:30.0630'),('2006-01-19 11:38:03.0378'),('0000-00-00 00:00:00.0000'), ('2001-02-04 00:00:00.0000'),('2004-10-22 21:59:04.0394'),('2006-03-20 18:54:13.0139'), ('2004-06-09 03:17:31.0403'),('0000-00-00 00:00:00.0000'),('2003-06-01 17:59:12.0365'), ('0000-00-00 00:00:00.0000'),('2009-06-15 08:58:58.0329'),('0000-00-00 00:00:00.0000'), ('2004-03-26 00:00:00.0000'),('2009-04-27 00:00:00.0000'),('2000-09-07 00:00:00.0000'), ('2006-11-04 00:51:03.0501'),('2005-02-20 00:30:47.0647'),('0000-00-00 00:00:00.0000'), ('2004-12-07 00:00:00.0000'),('0000-00-00 00:00:00.0000'),('0000-00-00 00:00:00.0000'), ('2002-08-17 00:27:20.0536'),('2006-10-12 12:12:28.0337'),('0000-00-00 00:00:00.0000'), ('0000-00-00 00:00:00.0000'),('2009-09-09 14:16:05.0354'),('2000-02-25 00:00:00.0000'), ('2003-12-16 05:38:37.0626'),('2000-10-05 03:46:43.0067'),('0000-00-00 00:00:00.0000'), ('2000-10-08 06:45:51.0547'),('0000-00-00 00:00:00.0000'),('2000-04-06 01:46:21.0620'), ('2001-08-10 23:15:40.0304'),('2001-06-24 10:14:00.0497'),('0000-00-00 00:00:00.0000'), ('0000-00-00 00:00:00.0000'),('2004-10-22 00:00:00.0000'),('0000-00-00 00:00:00.0000'), ('0000-00-00 00:00:00.0000'),('2005-08-23 06:34:23.0058'),('2005-03-28 18:34:18.0138'), ('2004-05-18 00:00:00.0000'); SELECT UNIX_TIMESTAMP(col_datetime_4_not_null) FROM t1 ORDER BY 1; UNIX_TIMESTAMP(col_datetime_4_not_null) NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 951436800.0000 954985581.0620 968284800.0000 970717603.0067 970987551.0547 976531678.0505 981244800.0000 991612800.0000 993377640.0497 997485340.0304 1017100800.0000 1029544040.0536 1035283986.0151 1036370790.0630 1054490352.0365 1065314635.0577 1071553117.0626 1080259200.0000 1084838400.0000 1086751051.0403 1098403200.0000 1098482344.0394 1102377600.0000 1108859447.0647 1112034858.0138 1124778863.0058 1136931554.0158 1137670683.0378 1142880853.0139 1147417604.0441 1158173645.0013 1160655148.0337 1162601463.0501 1173696521.0031 1185148800.0000 1194480000.0000 1200929324.0592 1240344100.0570 1240790400.0000 1245056338.0329 1245628800.0000 1252505765.0354 DROP TABLE t1; SET @@time_zone=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_timestamp_4_not_null_key TIMESTAMP(4) NULL DEFAULT '0000-00-00 00:00:00.0000', col_datetime_6_not_null DATETIME(6) NOT NULL, col_time_2_not_null TIME(2) NOT NULL, pk TIME(5) NOT NULL DEFAULT '00:00:00.00000', col_timestamp_5_not_null_key TIMESTAMP(5) NULL DEFAULT '0000-00-00 00:00:00.00000', PRIMARY KEY (pk), KEY col_timestamp_4_not_null_key (col_timestamp_4_not_null_key), KEY col_timestamp_5_not_null_key (col_timestamp_5_not_null_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; SELECT LEAST('2008-05-18', LOCALTIMESTAMP(), col_timestamp_5_not_null_key ) AS c1 FROM t1 WHERE col_time_2_not_null = TIME (STR_TO_DATE (DATE_FORMAT (DATE('2009-05-04'), CONCAT_WS(':', '%M', '%a', '%x', '%S', '%j' )), CONCAT_WS('-', '%V', '%S', '%U' ))) AND col_timestamp_4_not_null_key BETWEEN CURDATE() AND STR_TO_DATE(DATE_FORMAT(col_datetime_6_not_null, CONCAT_WS('-', '%I', '%S', '%v' )), CONCAT_WS('-', '%V', '%H' )); c1 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp= UNIX_TIMESTAMP('2011-09-21 08:20:30.123456'); CREATE TABLE t1 ( col_datetime_6 DATETIME(6) DEFAULT NULL, col_time_1_key TIME(1) DEFAULT NULL, col_time_4_key TIME(4) DEFAULT NULL, col_time_1 TIME(1) DEFAULT NULL, pk TIME(4) NOT NULL DEFAULT '00:00:00.0000', col_time_2_key TIME(2) DEFAULT NULL, col_datetime DATETIME DEFAULT NULL, col_datetime_5_not_null DATETIME(5) NOT NULL, col_time_3_key TIME(3) DEFAULT NULL, col_time_3 TIME(3) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_1_key (col_time_1_key), KEY col_time_4_key (col_time_4_key), KEY col_time_2_key (col_time_2_key), KEY col_time_3_key (col_time_3_key) )/*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('2004-06-28 22:47:21.052552','17:11:33.0','00:20:09.0000','00:20:04.0','02:05:58.4461','08:36:44.02','0000-00-00 00:00:00','0000-00-00 00:00:00.00000','02:17:50.049','07:31:13.030'); SELECT col_datetime_6 AS c1, col_datetime AS c2 FROM t1 WHERE col_time_2_key NOT BETWEEN SUBTIME(DATE('0000-00-00 00:00:00'), '19:30:30.005477' ) AND CURRENT_TIME() ORDER BY col_time_1, col_time_3, col_datetime_6, col_time_3_key, col_datetime_5_not_null, col_time_1_key, col_time_4_key; c1 c2 2004-06-28 22:47:21.052552 0000-00-00 00:00:00 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30'); CREATE TABLE t1 ( col_time_6_not_null_key TIME(6) NOT NULL, col_time_not_null TIME NOT NULL, pk TIME(4) NOT NULL DEFAULT '00:00:00.0000', col_time_key TIME DEFAULT NULL, col_time_2_not_null_key TIME(2) NOT NULL, col_time_4 TIME(4) DEFAULT NULL, col_time_3_not_null TIME(3) NOT NULL, col_datetime_2 DATETIME(2) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_6_not_null_key (col_time_6_not_null_key), KEY col_time_key (col_time_key), KEY col_time_2_not_null_key (col_time_2_not_null_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ( CURRENT_TIME(4), CURRENT_TIME(), CURRENT_TIME(4), CURRENT_TIME(), CURRENT_TIME(2), CURRENT_TIME(4), CURRENT_TIME(3), CURRENT_TIMESTAMP(2)); SELECT col_datetime_2 AS c1, col_time_not_null AS c2 FROM t1 WHERE col_time_6_not_null_key > COALESCE(col_time_2_not_null_key, col_time_4, col_time_not_null, col_time_3_not_null) ORDER BY 1; c1 c2 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 ( col_time_6_not_null_key TIME(6) NOT NULL, col_time_5_key TIME(5) DEFAULT NULL, col_timestamp TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', col_time_key TIME DEFAULT NULL, col_datetime_key DATETIME DEFAULT NULL, col_time_not_null TIME NOT NULL, pk TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', PRIMARY KEY (pk), KEY col_time_6_not_null_key (col_time_6_not_null_key), KEY col_time_5_key (col_time_5_key), KEY col_time_key (col_time_key), KEY col_datetime_key (col_datetime_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('03:07:29.013169',NULL,'0000-00-00 00:00:00','18:29:54','2000-06-10 19:41:30', '13:56:51','2011-09-07 23:08:20.8362'),('00:20:06.000000','08:25:11.04580', '2009-06-16 04:33:32','00:20:04','2004-08-23 21:05:10','00:20:06', '2011-09-07 23:08:22.8362'),('00:20:03.000000','00:20:07.00000', '2007-05-28 13:16:25','00:26:33','0000-00-00 00:00:00','01:04:48', '2011-09-07 23:08:24.8362'),('19:48:23.009935','00:20:07.00000', '2009-04-09 13:29:15','00:20:01',NULL,'21:43:24','2011-09-07 23:08:26.8362'), ('00:20:01.000000','22:27:30.00296','2009-03-21 23:00:46',NULL,'2003-01-23 14:57:31', '00:20:09','2011-09-07 23:08:28.8362'),('23:09:37.056340','07:01:38.05720', '2006-01-25 15:25:59','00:20:05',NULL,'05:10:32','2011-09-07 23:08:19.8362'), ('09:44:10.025082','00:20:07.00000','2009-01-06 18:48:29','00:20:02', '0000-00-00 00:00:00','00:20:00','2011-09-07 23:08:21.8362'), ('23:02:50.013380','22:48:12.05831',NULL,NULL,'2003-11-18 04:32:18','00:20:06', '2011-09-07 23:08:23.8362'),('00:20:01.000000','16:19:55.00007', '0000-00-00 00:00:00','07:55:21','0000-00-00 00:00:00','14:48:29', '2011-09-07 23:08:25.8362'),('06:00:36.034953','00:20:01.00000','2007-03-15 21:00:00', '00:20:01',NULL,'23:29:59','2011-09-07 23:08:27.8362'); SELECT col_time_5_key AS c1, col_time_key AS c2, col_timestamp AS c3 FROM t1 WHERE col_time_not_null NOT BETWEEN EXTRACT(YEAR_MONTH FROM '0000-00-00 00:00:00') AND COALESCE (col_time_6_not_null_key, col_datetime_key) ORDER BY 1, 2; c1 c2 c3 NULL 18:29:54 0000-00-00 00:00:00 00:20:01.00000 00:20:01 2007-03-15 21:00:00 00:20:07.00000 00:20:01 2009-04-09 13:29:15 00:20:07.00000 00:26:33 2007-05-28 13:16:25 16:19:55.00007 07:55:21 0000-00-00 00:00:00 22:27:30.00296 NULL 2009-03-21 23:00:46 DROP TABLE t1; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_time_5_not_null TIME(5) NOT NULL, col_timestamp_4_not_null_key TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', col_timestamp_1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', pk TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', col_date_key date DEFAULT NULL, col_time TIME DEFAULT NULL, col_timestamp TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', col_time_3_not_null_key TIME(3) NOT NULL, PRIMARY KEY (pk), KEY col_timestamp_4_not_null_key (col_timestamp_4_not_null_key), KEY col_date_key (col_date_key), KEY col_time_3_not_null_key (col_time_3_not_null_key) ) ENGINE=MEMORY /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ( CURRENT_TIME(5), CURRENT_TIMESTAMP(4), CURRENT_TIMESTAMP(1), CURRENT_TIMESTAMP(), CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP(),CURRENT_TIME()); SELECT col_time_3_not_null_key AS c1 FROM t1 WHERE col_timestamp <> col_date_key AND col_time <=> MAKETIME(24, 60, 4) ORDER BY 1; c1 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 09:30:40'); CREATE TABLE t1 ( col_datetime_5 DATETIME(5) DEFAULT NULL, col_time_2_key TIME(2) DEFAULT NULL, col_time_3_not_null TIME(3) NOT NULL, col_timestamp_1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', col_time_4_key TIME(4) DEFAULT NULL, col_datetime_3_key DATETIME(3) DEFAULT NULL, col_time_not_null TIME NOT NULL, col_time_6_key TIME(6) DEFAULT NULL, col_time_5_not_null TIME(5) NOT NULL, col_datetime_2_not_null DATETIME(2) NOT NULL, col_datetime_4 DATETIME(4) DEFAULT NULL, col_time_5 TIME(5) DEFAULT NULL, col_datetime_3 DATETIME(3) DEFAULT NULL, col_timestamp_2_not_null_key TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_time_3_key TIME(3) DEFAULT NULL, col_time_6_not_null_key TIME(6) NOT NULL, col_timestamp_2_key TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_timestamp_3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_timestamp_6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', col_date date DEFAULT NULL, col_timestamp_3_not_null TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_datetime_1_not_null_key DATETIME(1) NOT NULL, KEY col_time_2_key (col_time_2_key), KEY col_time_4_key (col_time_4_key), KEY col_datetime_3_key (col_datetime_3_key), KEY col_time_6_key (col_time_6_key), KEY col_timestamp_2_not_null_key (col_timestamp_2_not_null_key), KEY col_time_3_key (col_time_3_key), KEY col_time_6_not_null_key (col_time_6_not_null_key), KEY col_timestamp_2_key (col_timestamp_2_key), KEY col_datetime_1_not_null_key (col_datetime_1_not_null_key) ); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00000','00:20:08.00','00:20:01.000','0000-00-00 00:00:00.0','00:20:01.0000','0000-00-00 00:00:00.000','00:20:04','09:45:20.061990','00:20:09.00000','0000-00-00 00:00:00.00','0000-00-00 00:00:00.0000','00:20:04.00000','2001-05-23 09:36:42.052','2009-01-05 21:00:00.00','00:20:05.000','14:46:32.052047','2002-11-17 18:55:09.02','0000-00-00 00:00:00.000','2008-09-13 21:00:00.000000','2008-08-19','2007-02-10 21:00:00.000','0000-00-00 00:00:00.0'), ('2000-07-14 05:54:53.06239','00:20:05.00','00:20:05.000','1999-12-31 21:00:00.0','07:03:39.0208','2000-08-23 21:06:58.019','00:20:04','00:20:02.000000','15:44:52.01936','2005-11-17 00:00:00.00','2004-08-13 00:00:00.0000','06:06:48.02990','2006-09-05 02:09:02.053','2002-05-20 13:05:03.02','16:55:37.028','18:50:32.053805','2006-07-19 07:48:53.03','2007-03-18 04:55:22.063','2005-03-03 01:11:52.063987','2000-11-21','2006-01-03 23:43:37.061','2004-03-24 11:09:52.0'), ('0000-00-00 00:00:00.00000','18:28:33.04','00:20:01.000','2000-01-26 21:00:00.0','00:20:04.0000','0000-00-00 00:00:00.000','00:20:04','05:34:26.042699','00:40:37.02528','0000-00-00 00:00:00.00','2005-10-05 00:00:00.0000','23:03:38.03254','2002-07-10 00:00:00.000','2004-08-17 21:00:00.00','00:20:09.000','00:20:02.000000','2007-04-28 12:39:49.01','2009-10-19 21:00:00.000','2002-10-15 22:19:51.010640','2004-09-02','2000-06-03 21:00:00.000','2006-01-21 21:56:34.1'), ('2002-06-04 00:00:00.00000','17:18:15.01','00:20:07.000','0000-00-00 00:00:00.0','00:20:08.0000','0000-00-00 00:00:00.000','00:20:02','03:08:54.060553','07:16:55.00371','2004-05-23 00:18:17.06','2006-10-15 07:36:25.0250','21:17:33.03725','0000-00-00 00:00:00.000','2006-01-09 21:00:00.00','17:37:00.021','20:34:56.023570','2006-07-19 12:40:27.03','0000-00-00 00:00:00.000','0000-00-00 00:00:00.000000','0000-00-00','2001-02-17 08:11:26.052','0000-00-00 00:00:00.0'), ('2008-06-08 06:20:14.03026','00:20:02.00','00:20:09.000','2005-04-05 12:46:20.0','17:11:24.0634','2002-11-21 00:00:00.000','10:43:56','00:20:08.000000','00:20:07.00000','2008-05-13 10:13:26.06','2001-04-17 00:00:00.0000','01:47:22.02812','2009-09-16 14:44:14.026','0000-00-00 00:00:00.00','00:20:01.000','01:09:04.037569','2004-07-22 03:01:37.04','0000-00-00 00:00:00.000','2001-05-21 21:00:00.000000','0000-00-00','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0'), ('0000-00-00 00:00:00.00000','00:20:08.00','12:51:21.056','0000-00-00 00:00:00.0','00:39:29.0565','2003-01-04 00:00:00.000','01:19:53','00:20:05.000000','17:19:59.03478','2001-07-12 00:00:00.00','2008-12-16 13:56:12.0187','00:21:45.00721','0000-00-00 00:00:00.000','0000-00-00 00:00:00.00','13:54:49.005','00:20:07.000000','2004-02-23 10:21:57.02','0000-00-00 00:00:00.000','0000-00-00 00:00:00.000000','2005-10-10','2000-07-10 21:37:07.038','0000-00-00 00:00:00.0'), ('0000-00-00 00:00:00.00000','23:11:02.06','00:20:04.000','2002-09-06 08:31:08.0','20:03:26.0050','0000-00-00 00:00:00.000','09:40:06','17:18:46.036378','01:21:25.03109','0000-00-00 00:00:00.00','2005-11-11 12:10:13.0077','00:20:09.00000','0000-00-00 00:00:00.000','0000-00-00 00:00:00.00','09:04:28.034','00:20:08.000000','0000-00-00 00:00:00.00','2009-07-28 08:02:12.002','0000-00-00 00:00:00.000000','2005-04-06','2006-06-09 07:10:23.064','0000-00-00 00:00:00.0'), ('0000-00-00 00:00:00.00000','00:20:09.00','04:15:43.040','2002-09-15 21:00:00.0','00:20:03.0000','0000-00-00 00:00:00.000','11:07:33','00:20:00.000000','00:20:09.00000','0000-00-00 00:00:00.00','0000-00-00 00:00:00.0000','04:06:54.01875','2001-12-06 21:09:30.042','2002-09-23 22:33:09.03','13:56:42.014','07:56:26.029465','0000-00-00 00:00:00.00','2001-05-19 19:41:58.064','2006-03-28 06:12:25.002048','0000-00-00','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0'), ('2008-05-22 00:00:00.00000','21:46:17.04','00:20:00.000','2004-05-01 21:00:00.0','00:20:04.0000','0000-00-00 00:00:00.000','16:08:23','00:20:00.000000','00:39:12.04586','2001-08-25 00:00:00.00','2003-09-08 20:19:27.0197','16:01:03.03502','2005-02-14 00:00:00.000','0000-00-00 00:00:00.00','13:29:52.038','00:20:02.000000','2004-10-07 23:51:00.06','2009-02-03 23:21:26.017','0000-00-00 00:00:00.000000','0000-00-00','0000-00-00 00:00:00.000','2004-09-13 00:00:00.0'), ('2005-10-13 00:00:00.00000','00:20:08.00','18:41:54.050','2007-09-10 21:00:00.0','01:55:43.0424','0000-00-00 00:00:00.000','00:20:07','06:49:20.035790','00:20:04.00000','0000-00-00 00:00:00.00','2008-02-13 10:19:26.0346','00:20:01.00000','0000-00-00 00:00:00.000','0000-00-00 00:00:00.00','15:01:22.011','18:47:41.003944','2008-02-11 21:00:00.00','0000-00-00 00:00:00.000','2005-02-17 12:54:03.001418','2000-08-18','0000-00-00 00:00:00.000','2004-09-19 23:37:42.0'); SELECT col_timestamp_3 AS c1, col_date AS c2, CURTIME() AS c3 FROM t1 WHERE col_time_3_not_null NOT IN (col_time_not_null, CAST(col_time_5 AS DATETIME(3)), MAKEDATE(DAYOFMONTH('2002-09-13'), DATEDIFF('2009-12-15', col_timestamp_6)), CURRENT_DATE()) AND col_time_3_key NOT BETWEEN LEAST(CURRENT_TIME(), TIMESTAMPADD(HOUR, 187, MAKETIME(209, 60, 1))) AND CURTIME() AND col_datetime_2_not_null NOT IN (DATE('2009-03-28'), col_timestamp_2_not_null_key, ADDDATE(col_timestamp_2_key, 28), col_datetime_3, UTC_DATE()) OR col_time_6_key IS NOT NULL AND col_timestamp_3_not_null IN (col_timestamp_1, col_datetime_3_key, col_time_4_key) OR col_time_6_not_null_key BETWEEN TIMESTAMP('0000-00-00', '16:50:23.062015') AND col_datetime_5 AND col_datetime_4 >= col_time_2_key AND col_time_5_not_null BETWEEN col_timestamp_3_not_null AND col_datetime_1_not_null_key ORDER BY col_time_4_key, col_datetime_3_key; c1 c2 c3 2001-05-19 19:41:58.064 0000-00-00 09:30:40 2009-02-03 23:21:26.017 0000-00-00 09:30:40 0000-00-00 00:00:00.000 2000-08-18 09:30:40 2007-03-18 04:55:22.063 2000-11-21 09:30:40 Warnings: Warning 1292 Incorrect datetime value: '0000-00-00' DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 ( col_datetime_1_key DATETIME(1) DEFAULT NULL, col_time_5_not_null_key TIME(5) NOT NULL, col_datetime_2_not_null DATETIME(2) NOT NULL, pk DATETIME(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_time_2_not_null_key TIME(2) NOT NULL, col_time_2_key TIME(2) DEFAULT NULL, col_timestamp_3_not_null TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_timestamp_4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', PRIMARY KEY (pk), KEY col_datetime_1_key (col_datetime_1_key), KEY col_time_5_not_null_key (col_time_5_not_null_key), KEY col_time_2_not_null_key (col_time_2_not_null_key), KEY col_time_2_key (col_time_2_key) )/*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('2007-11-05 00:00:00.0','00:20:01.00000','0000-00-00 00:00:00.00','0000-00-00 00:00:00.00','00:20:08.00','07:54:36.06','0000-00-00 00:00:00.000','2008-02-19 21:00:00.0000'),('2001-09-22 23:10:01.0','00:20:00.00000','0000-00-00 00:00:00.00','2011-09-09 20:59:53.03','00:20:01.00','00:20:02.00','0000-00-00 00:00:00.000','2003-07-11 13:55:04.0379'),('2007-10-20 00:00:00.0','22:15:28.06072','0000-00-00 00:00:00.00','2011-09-09 20:59:54.03','00:20:03.00','00:20:07.00','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0000'),('0000-00-00 00:00:00.0','00:20:03.00000','2009-01-27 00:00:00.00','2011-09-09 20:59:55.03','03:34:18.06','14:32:24.01','0000-00-00 00:00:00.000','2003-11-17 09:58:11.0160'),('2008-04-10 00:00:00.0','00:20:05.00000','2004-10-16 01:19:20.06','2011-09-09 20:59:56.03','21:14:08.05','02:32:00.04','2008-09-15 17:48:32.047','2003-01-16 21:00:00.0000'),('0000-00-00 00:00:00.0','00:20:03.00000','0000-00-00 00:00:00.00','2011-09-09 20:59:57.03','00:20:05.00','22:08:39.02','0000-00-00 00:00:00.000','2003-03-19 02:39:29.0637'),('2009-04-10 21:16:38.0','00:20:07.00000','2001-05-17 15:25:33.04','2011-09-09 20:59:58.03','00:20:05.00','09:36:28.04','2005-01-12 10:44:24.031','0000-00-00 00:00:00.0000'),('2001-06-10 20:23:08.0','07:38:25.03484','2002-06-22 00:00:00.00','2011-09-09 20:59:59.03','02:05:30.01','04:24:09.06','2002-05-25 21:00:00.000','2006-05-16 06:48:03.0399'); SELECT col_datetime_2_not_null AS c1, col_time_2_key AS c2, col_time_5_not_null_key AS c3 FROM t1 WHERE col_time_2_not_null_key NOT IN (TIMESTAMP(MAKEDATE(19 + 0, 213)), MAKEDATE(46, DATEDIFF('0000-00-00 00:00:00', '0000-00-00 00:00:00'))) AND col_datetime_1_key IS NULL OR col_timestamp_4 < col_timestamp_3_not_null ORDER BY 1; c1 c2 c3 2001-05-17 15:25:33.04 09:36:28.04 00:20:07.00000 2004-10-16 01:19:20.06 02:32:00.04 00:20:05.00000 Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' DROP TABLE t1; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_time_1_not_null TIME(1) NOT NULL, col_time_6 TIME(6) DEFAULT NULL, col_datetime_6_not_null_key DATETIME(6) NOT NULL, col_timestamp_key TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', col_timestamp_2 TIMESTAMP(2) NULL DEFAULT '0000-00-00 00:00:00.00', col_timestamp_not_null TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', col_timestamp TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', pk DATETIME(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_time_6_not_null TIME(6) NOT NULL, col_datetime_3_not_null DATETIME(3) NOT NULL, PRIMARY KEY (pk), KEY col_datetime_6_not_null_key (col_datetime_6_not_null_key), KEY col_timestamp_key (col_timestamp_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ( CURRENT_TIME(1), CURRENT_TIME(6), CURRENT_TIMESTAMP(6), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(2), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(3), CURRENT_TIME(6), CURRENT_TIMESTAMP(3)); SELECT col_timestamp_not_null AS c1, col_datetime_6_not_null_key AS c2 FROM t1 WHERE col_timestamp IS NOT NULL AND col_timestamp_2 <> col_time_1_not_null AND col_timestamp_key BETWEEN col_datetime_3_not_null AND CURRENT_TIME() OR col_time_6_not_null != LEAST(col_time_6, UTC_TIME()); c1 c2 2011-09-21 10:20:30 2011-09-21 10:20:30.123456 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_timestamp_2 TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_5 DATETIME(5) DEFAULT NULL, col_time_3 TIME(3) DEFAULT NULL, col_time_4_not_null TIME(4) NOT NULL, col_datetime_5_not_null DATETIME(5) NOT NULL, col_timestamp_5_key TIMESTAMP(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', col_time_1_not_null_key TIME(1) NOT NULL, col_datetime DATETIME DEFAULT NULL, col_timestamp_4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', KEY col_timestamp_5_key (col_timestamp_5_key), KEY col_time_1_not_null_key (col_time_1_not_null_key) ); INSERT INTO t1 VALUES ( CURRENT_TIMESTAMP(2), CURRENT_TIMESTAMP(5), CURRENT_TIME(3), CURRENT_TIME(4), CURRENT_TIMESTAMP(5), CURRENT_TIMESTAMP(5), CURRENT_TIME(1), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(4)); SELECT col_datetime_5_not_null AS c1, col_time_1_not_null_key AS c2 FROM t1 WHERE col_time_4_not_null = MAKETIME(24, 60, 3 ) AND col_time_3 NOT IN ( col_datetime_5, UTC_DATE(), col_timestamp_5_key, ADDDATE('0000-00-00 00:00:00', DATEDIFF('2001-09-21',FROM_UNIXTIME(1018888192, CONCAT_WS('-','%s','%V','%u')))), col_timestamp_4) AND col_timestamp_2 NOT BETWEEN col_datetime AND '2005-09-12' ORDER BY 1; c1 c2 SELECT col_datetime_5_not_null AS c1, col_time_1_not_null_key AS c2 FROM t1 WHERE col_time_4_not_null=MAKETIME(24,60, 3) AND col_time_3 NOT IN (col_datetime_5, UTC_DATE(), col_timestamp_5_key, col_timestamp_4) AND col_timestamp_2 NOT BETWEEN col_datetime AND '2005-09-12' ORDER BY 1; c1 c2 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_time_4_key TIME(4) DEFAULT NULL, col_datetime_4_not_null DATETIME(4) NOT NULL, col_timestamp_5 TIMESTAMP(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', col_datetime_not_null_key DATETIME NOT NULL, col_timestamp_key TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', KEY col_time_4_key (col_time_4_key), KEY col_datetime_not_null_key (col_datetime_not_null_key), KEY col_timestamp_key (col_timestamp_key) ); INSERT INTO t1 VALUES ('00:20:08.0000','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.00000','0000-00-00 00:00:00','2006-10-24 21:00:00'),('19:24:23.0232','2006-12-11 22:04:06.0393','2004-12-08 21:00:00.00000','2009-06-04 03:01:35','2003-08-19 21:00:00'); SELECT UNIX_TIMESTAMP(col_datetime_4_not_null) AS c1 FROM t1 WHERE col_time_4_key NOT BETWEEN '2001-07-06' AND LEAST(FROM_DAYS(col_timestamp_key), col_timestamp_5) OR CONVERT_TZ(MAKETIME(24, 5, 7), 'Japan', 'Japan') IS NULL OR CURRENT_TIMESTAMP() IS NOT NULL OR col_datetime_not_null_key >= UTC_TIME() ORDER BY 1 ; c1 NULL 1165871046.0393 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 ( col_time_not_null_key TIME NOT NULL, col_datetime_5_not_null_key DATETIME(5) NOT NULL, col_timestamp_6_key TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', col_time_1 TIME(1) DEFAULT NULL, pk DATETIME(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', col_time_2_key TIME(2) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_not_null_key (col_time_not_null_key), KEY col_datetime_5_not_null_key (col_datetime_5_not_null_key), KEY col_timestamp_6_key (col_timestamp_6_key), KEY col_time_2_key (col_time_2_key) )/*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('00:20:02','2007-08-09 05:14:12.05054','2007-06-20 21:00:00.000000','06:16:36.0','2011-09-09 21:37:45.2','19:15:37.02'),('18:00:14','0000-00-00 00:00:00.00000','2000-12-10 12:35:01.029761','00:20:04.0','2011-09-09 21:37:46.2','06:21:03.03'); SELECT col_time_1 AS c1 FROM t1 WHERE col_time_not_null_key <= col_timestamp_6_key AND col_time_2_key > SUBTIME('2006-07-16', '05:05:02.040778') ORDER BY col_datetime_5_not_null_key, col_time_1; c1 DROP TABLE t1; CREATE TABLE t1 ( col_timestamp_3_not_null_key timestamp(3) NULL DEFAULT '0000-00-00 00:00:00.000', pk time(1) NOT NULL DEFAULT '00:00:00.0', col_datetime_6 datetime(6) DEFAULT NULL, col_time_5_not_null_key time(5) NOT NULL, col_timestamp_1_not_null_key timestamp(1) NULL DEFAULT '0000-00-00 00:00:00.0', col_datetime_4_key datetime(4) DEFAULT NULL, col_time_2_not_null_key time(2) NOT NULL, PRIMARY KEY (pk), KEY col_timestamp_3_not_null_key (col_timestamp_3_not_null_key), KEY col_time_5_not_null_key (col_time_5_not_null_key), KEY col_timestamp_1_not_null_key (col_timestamp_1_not_null_key), KEY col_datetime_4_key (col_datetime_4_key), KEY col_time_2_not_null_key (col_time_2_not_null_key) ) DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000','14:09:27.6','0000-00-00 00:00:00.000000','18:38:36.04289','2003-07-01 21:00:00.0','2009-09-15 09:25:49.0110','15:47:52.01'); INSERT INTO t1 VALUES ('2004-04-08 23:25:16.012','14:09:26.6',NULL,'05:45:23.05509','2008-12-11 21:00:00.0','2001-04-23 20:41:27.0470','05:09:23.04'); SELECT SUBTIME(col_timestamp_3_not_null_key , SYSDATE()) AS c1 FROM t1 WHERE col_timestamp_1_not_null_key NOT IN (col_datetime_4_key , GREATEST(DATE('2006-04-26'), UTC_DATE())) ORDER BY col_datetime_6 , col_time_2_not_null_key , col_time_5_not_null_key; DROP TABLE t1; CREATE TABLE t1 ( col_time_1_not_null_key time(1) NOT NULL, pk timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', col_datetime_3_not_null_key datetime(3) NOT NULL, col_time_2_key time(2) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_1_not_null_key (col_time_1_not_null_key), KEY col_datetime_3_not_null_key (col_datetime_3_not_null_key), KEY col_time_2_key (col_time_2_key) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('00:20:05.0','1999-12-31 21:00:01','0000-00-00 00:00:00.000','04:25:59.01'); INSERT INTO t1 VALUES ('00:15:56.0','1999-12-31 21:00:03','0000-00-00 00:00:00.000','00:20:06.00'); INSERT INTO t1 VALUES ('00:20:03.0','1999-12-31 21:00:05','2002-10-18 16:08:58.006','00:20:00.00'); INSERT INTO t1 VALUES ('00:20:09.0','1999-12-31 21:00:07','2002-11-11 17:21:02.045','18:39:12.05'); INSERT INTO t1 VALUES ('13:51:22.0','1999-12-31 21:00:09','2002-08-07 10:27:35.055','00:20:07.00'); INSERT INTO t1 VALUES ('00:20:06.0','0000-00-00 00:00:00','2003-08-12 00:00:00.000','20:35:34.01'); SELECT col_time_1_not_null_key AS c1 FROM t1 WHERE col_datetime_3_not_null_key NOT IN (LEAST( DATE('0000-00-00 00:00:00'), CURDATE()), col_time_2_key); DROP TABLE t1; SET timestamp=UNIX_TIMESTAMP('2001-11-07 15:13:00'); CREATE TABLE t1 ( col_time_3_not_null time(3) NOT NULL, col_datetime_4_not_null_key datetime(4) NOT NULL, col_datetime_key datetime DEFAULT NULL, col_time_1_key time(1) DEFAULT NULL, col_time_5 time(5) DEFAULT NULL, col_timestamp_6_not_null_key timestamp(6) NULL DEFAULT '0000-00-00 00:00:00.000000', pk datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', PRIMARY KEY (pk), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key), KEY col_datetime_key (col_datetime_key), KEY col_time_1_key (col_time_1_key), KEY col_timestamp_6_not_null_key (col_timestamp_6_not_null_key)); INSERT INTO t1 VALUES ('12:52:24.022','0000-00-00 00:00:00.0000','2003-05-24 00:00:00','00:20:09.0','15:11:20.03463','0000-00-00 00:00:00.000000','2011-11-07 12:01:35.111932'); INSERT INTO t1 VALUES ('18:52:49.043','2000-10-13 00:00:00.0000','2005-07-22 00:00:00',NULL,'08:19:02.03845','2000-09-20 03:26:09.009008','2011-11-07 12:01:36.111932'); INSERT INTO t1 VALUES ('23:46:05.010','2005-12-27 04:06:15.0087','0000-00-00 00:00:00','23:40:13.0','08:30:24.03114','0000-00-00 00:00:00.000000','2011-11-07 12:01:37.111932'); INSERT INTO t1 VALUES ('00:20:05.000','2009-06-01 08:01:58.0532','2007-03-26 12:18:48','00:20:03.0','20:32:22.04519','2000-08-19 21:00:00.000000','2011-11-07 12:01:38.111932'); INSERT INTO t1 VALUES ('00:20:05.000','2002-05-01 00:00:00.0000','0000-00-00 00:00:00','04:31:10.0','00:20:04.00000','0000-00-00 00:00:00.000000','2011-11-07 12:01:39.111932'); INSERT INTO t1 VALUES ('00:20:06.000','2007-07-25 22:20:58.0023','0000-00-00 00:00:00','00:23:16.1',NULL,'2008-03-19 16:17:15.042024','2011-11-07 12:01:40.111932'); INSERT INTO t1 VALUES ('02:55:32.040','0000-00-00 00:00:00.0000',NULL,'00:20:02.0','08:45:57.00998','2009-06-25 10:21:16.011345','2011-11-07 12:01:41.111932'); INSERT INTO t1 VALUES ('00:20:06.000','2009-01-07 01:12:15.0324','2000-05-26 00:00:00','17:41:45.1','00:20:07.00000','0000-00-00 00:00:00.000000','2011-11-07 12:01:42.111932'); INSERT INTO t1 VALUES ('12:01:30.061','2009-04-01 00:00:00.0000','2001-05-08 05:31:04','07:43:41.1','11:12:29.03251','2009-12-22 17:45:46.040987','2011-11-07 12:01:43.111932'); INSERT INTO t1 VALUES ('00:16:22.057','2005-05-10 00:18:58.0345',NULL,'02:24:15.0',NULL,'2008-02-14 20:55:46.023678','2011-11-07 12:01:44.111932'); INSERT INTO t1 VALUES ('06:54:17.018','2002-12-27 12:28:03.0382','0000-00-00 00:00:00','19:19:54.0','01:42:30.03406','0000-00-00 00:00:00.000000','2011-11-07 12:01:45.111932'); INSERT INTO t1 VALUES ('00:20:04.000','2007-03-11 00:00:00.0000','0000-00-00 00:00:00',NULL,'13:12:03.05778','2005-02-19 02:31:13.046418','2011-11-07 12:01:46.111932'); INSERT INTO t1 VALUES ('00:20:01.000','2009-08-13 00:00:00.0000','0000-00-00 00:00:00','00:20:02.0',NULL,'2008-05-21 10:53:59.004633','2011-11-07 12:01:47.111932'); INSERT INTO t1 VALUES ('02:44:13.025','2001-07-02 14:06:37.0411','2009-04-01 00:43:45','00:20:07.0','16:15:02.01279','2004-07-28 17:34:20.031118','2011-11-07 12:01:48.111932'); INSERT INTO t1 VALUES ('14:51:02.019','2006-02-24 04:12:05.0014','0000-00-00 00:00:00','00:20:08.0','00:20:09.00000','2001-04-25 21:00:00.000000','2011-11-07 12:01:49.111932'); SELECT col_timestamp_6_not_null_key AS c1, col_datetime_key AS c2, UTC_DATE() AS c3 FROM t1 WHERE col_time_1_key BETWEEN TIMESTAMPADD(MONTH, 38 ,CONVERT_TZ( DATE(MAKEDATE(207, 38 )), '+00:00','+04:00')) AND LOCALTIMESTAMP() ORDER BY col_datetime_4_not_null_key , col_time_5 , col_time_3_not_null; c1 c2 c3 2009-06-25 10:21:16.011345 NULL 2001-11-07 0000-00-00 00:00:00.000000 2003-05-24 00:00:00 2001-11-07 2004-07-28 17:34:20.031118 2009-04-01 00:43:45 2001-11-07 0000-00-00 00:00:00.000000 0000-00-00 00:00:00 2001-11-07 2008-02-14 20:55:46.023678 NULL 2001-11-07 2001-04-25 21:00:00.000000 0000-00-00 00:00:00 2001-11-07 2008-03-19 16:17:15.042024 0000-00-00 00:00:00 2001-11-07 2009-12-22 17:45:46.040987 2001-05-08 05:31:04 2001-11-07 2000-08-19 21:00:00.000000 2007-03-26 12:18:48 2001-11-07 2008-05-21 10:53:59.004633 0000-00-00 00:00:00 2001-11-07 DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13359097 ASSERT FAILURE IN MAKE_SORTKEY # SET timestamp=UNIX_TIMESTAMP('2011-11-01 17:48:00'); CREATE TABLE t1 ( pk time(6) NOT NULL DEFAULT '00:00:00.000000', col_date_not_null date NOT NULL, PRIMARY KEY (pk) ); INSERT INTO t1 VALUES ('00:00:00.000000','2001-09-10'); INSERT INTO t1 VALUES ('12:07:41.148239','2000-05-23'); SELECT GREATEST('2004-04-07', COALESCE (pk, col_date_not_null)) FROM t1 ORDER BY 1; GREATEST('2004-04-07', COALESCE (pk, col_date_not_null)) 2011-11-01 00:00:00.000000 2011-11-01 12:07:41.148239 DROP TABLE t1; SET timestamp=DEFAULT; # # BUG 13385275 - ASSERT FAILURE IN TIME_FROM_LONGLONG_PACKED # CREATE TABLE t1 ( col_date_not_null_key date NOT NULL, KEY col_date_not_null_key (col_date_not_null_key)); INSERT INTO t1 VALUES ('0000-00-00'), ('2000-11-20'); SELECT ADDTIME(GREATEST(col_date_not_null_key, '2007-03-11 08:51:19.009408'), '12:20:40.029940') FROM t1; ADDTIME(GREATEST(col_date_not_null_key, '2007-03-11 08:51:19.009408'), '12:20:40.029940') 2007-03-11 12:20:40.029940 2007-03-11 12:20:40.029940 DROP TABLE t1; # # BUG#13386657 ASSERT FAILURE IN ITEM::GET_DATE_FROM_NON_TEMPORAL # CREATE TABLE t1 ( col_time_5_not_null_key time(5) NOT NULL, col_datetime_4 datetime(4) DEFAULT NULL, col_timestamp_1_not_null_key timestamp(1) NULL DEFAULT '0000-00-00 00:00:00.0', col_datetime_3_not_null_key datetime(3) NOT NULL, KEY col_time_5_not_null_key (col_time_5_not_null_key), KEY col_timestamp_1_not_null_key (col_timestamp_1_not_null_key), KEY col_datetime_3_not_null_key (col_datetime_3_not_null_key)); INSERT INTO t1 VALUES ('15:01:38.00004','0000-00-00 00:00:00.0000','2005-06-08 16:51:23.0','0000-00-00 00:00:00.000'); SELECT col_datetime_4 FROM t1 WHERE col_datetime_3_not_null_key IN (COALESCE (col_timestamp_1_not_null_key), col_time_5_not_null_key); col_datetime_4 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)); INSERT INTO t1 VALUES ('2001-01-01 10:20:30.999'); SELECT CAST(COALESCE(a,a) AS CHAR) FROM t1; CAST(COALESCE(a,a) AS CHAR) 2001-01-01 10:20:30.999 SELECT CAST(COALESCE(a,a) AS SIGNED) FROM t1; CAST(COALESCE(a,a) AS SIGNED) 20010101102030 SELECT CAST(COALESCE(a,a) AS DECIMAL(25,3)) FROM t1; CAST(COALESCE(a,a) AS DECIMAL(25,3)) 20010101102030.999 SELECT CAST(COALESCE(a,a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a,a) AS DATETIME(6)) 2001-01-01 10:20:30.999000 SELECT CAST(COALESCE(a,a) AS TIME(6)) FROM t1; CAST(COALESCE(a,a) AS TIME(6)) 10:20:30.999000 SELECT ROUND(COALESCE(a,a)) FROM t1; ROUND(COALESCE(a,a)) 20010101102031 DROP TABLE t1; # # Bug#13391370 ASSERT FAILURE IN TIME_TO_LONGLONG_DATETIME_PACKED # SET timestamp=UNIX_TIMESTAMP('2011-11-15 16:25:30'); CREATE TABLE t1 ( col_time_2_not_null time(2) NOT NULL, col_timestamp_1_not_null timestamp(1) NULL DEFAULT '0000-00-00 00:00:00.0', col_datetime_1 datetime(1) DEFAULT NULL, col_timestamp_4_not_null timestamp(4) NULL DEFAULT '0000-00-00 00:00:00.0000', col_timestamp_6_not_null_key timestamp(6) NULL DEFAULT '0000-00-00 00:00:00.000000', col_date date DEFAULT NULL, KEY col_timestamp_6_not_null_key (col_timestamp_6_not_null_key)); DELETE FROM t1; INSERT INTO t1 VALUES ('00:20:09.00','2008-02-09 00:19:47.1','0000-00-00 00:00:00.0','2009-03-13 00:56:44.0401','2008-10-17 09:43:02.051040','2000-11-13'); INSERT INTO t1 VALUES ('00:20:04.00','0000-00-00 00:00:00.0','0000-00-00 00:00:00.0','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.000000','2006-11-14'); INSERT INTO t1 VALUES ('15:54:14.06','2003-04-19 04:55:47.0',NULL,'0000-00-00 00:00:00.0000','2009-12-27 02:49:14.005722','0000-00-00'); INSERT INTO t1 VALUES ('04:58:16.02','2004-02-17 21:00:00.0',NULL,'0000-00-00 00:00:00.0000','2001-10-07 11:02:50.054375','2000-04-10'); INSERT INTO t1 VALUES ('10:34:28.04','2006-10-16 21:00:00.0',NULL,'0000-00-00 00:00:00.0000','2008-05-17 05:14:50.028683','0000-00-00'); INSERT INTO t1 VALUES ('14:17:38.04','2001-06-24 04:33:25.0','2008-09-05 21:25:39.0','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.000000',NULL); INSERT INTO t1 VALUES ('00:20:06.00','2005-06-26 22:52:46.0','0000-00-00 00:00:00.0','2000-09-11 02:51:17.0211','0000-00-00 00:00:00.000000','2006-10-10'); INSERT INTO t1 VALUES ('00:09:41.03','0000-00-00 00:00:00.0','2008-02-16 19:59:19.0','2000-10-21 21:00:00.0000','2006-11-14 10:22:27.009969','0000-00-00'); INSERT INTO t1 VALUES ('16:57:08.01','2009-05-13 21:03:39.0','2004-01-12 11:46:42.0','2000-02-28 10:51:01.0152','2001-05-10 14:21:38.022082',NULL); INSERT INTO t1 VALUES ('19:02:15.03','0000-00-00 00:00:00.0','2009-07-16 20:15:38.1','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.000000',NULL); SELECT SUBTIME('2002-04-08 06:05:42.056589', '01:26:40.063385') AS c1 FROM t1 WHERE col_timestamp_6_not_null_key IN ( LEAST(col_datetime_1, MAKETIME(24,8,0), ADDTIME(NOW(),'06:07:21.061946'), col_time_2_not_null), DATE ('2005-11-03'), CURTIME(), COALESCE(col_timestamp_4_not_null, TIMESTAMP('2003-09-10'))) ORDER BY col_date, col_timestamp_1_not_null; c1 2002-04-08 04:39:01.993204 2002-04-08 04:39:01.993204 2002-04-08 04:39:01.993204 2002-04-08 04:39:01.993204 DROP TABLE t1; CREATE TABLE t1 (a datetime(1)); INSERT INTO t1 VALUES ('2006-11-14 10:22:27.009969'); SELECT * FROM t1 WHERE timestamp'2006-11-14 10:22:27.009969' IN (LEAST(a, MAKETIME(24,8,0))); a DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13384069 - EMBEDED UPDATE WITH CAST AND DATETIME WITH FSP DOES NOT WORK # CREATE TABLE t1 ( pk timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_6 datetime(6) DEFAULT NULL, PRIMARY KEY (pk)); INSERT INTO t1 VALUES ('2011-11-11 17:59:41.12','0000-00-00 00:00:00.000000'); SELECT col_datetime_6, CAST(col_datetime_6 AS DATETIME(2)) AS c1 FROM t1; col_datetime_6 c1 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.00 CREATE TABLE t2 AS SELECT CAST(col_datetime_6 AS DATETIME(2)) AS c1 FROM t1; SELECT * FROM t2; c1 0000-00-00 00:00:00.00 UPDATE t2 SET c1=(SELECT CAST(col_datetime_6 AS DATETIME(2)) AS c1 FROM t1); SELECT * FROM t2; c1 0000-00-00 00:00:00.00 DROP TABLE t1, t2; CREATE TABLE t1 (a DATE); INSERT INTO t1 VALUES ('0000-00-00'); SELECT CAST(COALESCE(a,a) AS SIGNED) FROM t1; CAST(COALESCE(a,a) AS SIGNED) 0 SELECT CAST(COALESCE(a,a) AS CHAR) FROM t1; CAST(COALESCE(a,a) AS CHAR) 0000-00-00 SELECT CAST(COALESCE(a,a) AS DECIMAL(25,3)) FROM t1; CAST(COALESCE(a,a) AS DECIMAL(25,3)) 0.000 SELECT CAST(COALESCE(a,a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a,a) AS DATETIME(6)) 0000-00-00 00:00:00.000000 SELECT CAST(COALESCE(a,a) AS TIME(6)) FROM t1; CAST(COALESCE(a,a) AS TIME(6)) 00:00:00.000000 SELECT ROUND(COALESCE(a,a)) FROM t1; ROUND(COALESCE(a,a)) 0 DROP TABLE t1; CREATE TABLE t1 (a DATETIME); INSERT INTO t1 VALUES ('0000-00-00 00:00:00'); SELECT CAST(COALESCE(a,a) AS SIGNED) FROM t1; CAST(COALESCE(a,a) AS SIGNED) 0 SELECT CAST(COALESCE(a,a) AS CHAR) FROM t1; CAST(COALESCE(a,a) AS CHAR) 0000-00-00 00:00:00 SELECT CAST(COALESCE(a,a) AS DECIMAL(25,3)) FROM t1; CAST(COALESCE(a,a) AS DECIMAL(25,3)) 0.000 SELECT CAST(COALESCE(a,a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a,a) AS DATETIME(6)) 0000-00-00 00:00:00.000000 SELECT CAST(COALESCE(a,a) AS TIME(6)) FROM t1; CAST(COALESCE(a,a) AS TIME(6)) 00:00:00.000000 SELECT ROUND(COALESCE(a,a)) FROM t1; ROUND(COALESCE(a,a)) 0 DROP TABLE t1; # # Bug#13383838 - DELETE DOESN'T EMPTY RECORDS WHEN CAST WITH DATETIME TYPE IN EMBEDED SELECT # CREATE TABLE t1 ( pk timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_6 datetime(6) DEFAULT NULL, PRIMARY KEY (pk)); INSERT INTO t1 VALUES ('2011-11-11 17:59:41.12','0000-00-00 00:00:00.000000'); CREATE TABLE t2 SELECT CAST(col_datetime_6 AS DATETIME) AS c1 FROM t1; UPDATE t2 SET c1=(SELECT CAST(col_datetime_6 AS DATETIME) AS c1 FROM t1) WHERE c1 IN (SELECT CAST(col_datetime_6 AS DATETIME) AS c1 FROM t1); SELECT * FROM t2 WHERE c1 IN (SELECT CAST( col_datetime_6 AS DATETIME ) AS c1 FROM t1); c1 0000-00-00 00:00:00 DELETE FROM t2 WHERE c1 IN (SELECT CAST( col_datetime_6 AS DATETIME ) AS c1 FROM t1); SELECT COUNT(*) FROM t2; COUNT(*) 0 DROP TABLE t1, t2; CREATE TABLE t1 ( pk timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_date date DEFAULT NULL, PRIMARY KEY (pk)); INSERT INTO t1 VALUES ('2011-11-11 17:59:41.12','0000-00-00'); CREATE TABLE t2 SELECT CAST(col_date AS DATE) AS c1 FROM t1; UPDATE t2 SET c1=(SELECT CAST(col_date AS DATE) AS c1 FROM t1) WHERE c1 IN (SELECT CAST(col_date AS DATE) AS c1 FROM t1); SELECT * FROM t2 WHERE c1 IN (SELECT CAST(col_date AS DATE) AS c1 FROM t1); c1 0000-00-00 DELETE FROM t2 WHERE c1 IN (SELECT CAST(col_date AS DATE) AS c1 FROM t1); SELECT COUNT(*) FROM t2; COUNT(*) 0 DROP TABLE t1, t2; # # Bug#13392141 ASSERT FAILURE IN SEC_SINCE_EPOCH # SELECT CONVERT_TZ(TIMESTAMP'2021-00-00 00:00:00', '+00:00', '+7:5'); CONVERT_TZ(TIMESTAMP'2021-00-00 00:00:00', '+00:00', '+7:5') NULL Warnings: Warning 1292 Incorrect datetime value: '2021-00-00 00:00:00' SELECT CONVERT_TZ(DATE'2021-00-00', '+00:00', '+7:5'); CONVERT_TZ(DATE'2021-00-00', '+00:00', '+7:5') NULL Warnings: Warning 1292 Incorrect datetime value: '2021-00-00' SELECT CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2021-00-00')),'+00:00','+7:5'); CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2021-00-00')),'+00:00','+7:5') NULL Warnings: Warning 1292 Incorrect datetime value: '2021-00-00' SET timestamp=UNIX_TIMESTAMP('2011-11-16 17:28:30'); DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' CREATE TABLE t1 ( col_timestamp_2_not_null_key timestamp(2) NULL DEFAULT '0000-00-00 00:00:00.00', pk time NOT NULL DEFAULT '00:00:00', PRIMARY KEY (pk), KEY col_timestamp_2_not_null_key (col_timestamp_2_not_null_key)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:49:56'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:49:58'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:00'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:02'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:03'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:05'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:12'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:14'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:18'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:19'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:23'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:24'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:28'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:30'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:34'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:35'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:37'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:38'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:46'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:47'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:50'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:52'); INSERT INTO t1 VALUES ('2000-05-24 21:00:00.00','18:50:11'); INSERT INTO t1 VALUES ('2000-08-09 13:04:19.05','18:50:32'); INSERT INTO t1 VALUES ('2000-10-05 09:01:10.01','18:50:42'); INSERT INTO t1 VALUES ('2000-12-08 03:00:13.05','18:50:04'); INSERT INTO t1 VALUES ('2001-03-02 07:52:23.01','18:50:44'); INSERT INTO t1 VALUES ('2001-04-24 10:01:32.05','18:50:49'); INSERT INTO t1 VALUES ('2003-02-18 14:31:23.06','18:50:39'); INSERT INTO t1 VALUES ('2003-03-07 21:00:00.00','18:50:29'); INSERT INTO t1 VALUES ('2003-04-16 21:00:00.00','18:50:17'); INSERT INTO t1 VALUES ('2003-08-10 21:00:00.00','18:50:36'); INSERT INTO t1 VALUES ('2003-11-24 06:30:37.06','18:49:53'); INSERT INTO t1 VALUES ('2003-12-01 21:00:00.00','18:50:41'); INSERT INTO t1 VALUES ('2004-05-16 19:56:24.05','18:50:31'); INSERT INTO t1 VALUES ('2004-05-27 18:45:05.06','18:50:08'); INSERT INTO t1 VALUES ('2004-06-05 22:51:19.04','18:50:20'); INSERT INTO t1 VALUES ('2004-10-16 21:00:00.00','18:49:54'); INSERT INTO t1 VALUES ('2004-11-02 21:00:00.00','18:50:51'); INSERT INTO t1 VALUES ('2005-02-23 00:35:02.05','18:50:07'); INSERT INTO t1 VALUES ('2005-08-15 16:33:48.01','18:50:43'); INSERT INTO t1 VALUES ('2006-03-14 21:15:50.03','18:50:33'); INSERT INTO t1 VALUES ('2006-04-24 18:46:21.06','18:50:01'); INSERT INTO t1 VALUES ('2006-05-14 01:54:29.01','18:50:40'); INSERT INTO t1 VALUES ('2006-08-23 22:33:51.02','18:50:06'); INSERT INTO t1 VALUES ('2006-11-15 02:06:29.02','18:49:59'); INSERT INTO t1 VALUES ('2006-11-28 11:32:09.03','18:50:15'); INSERT INTO t1 VALUES ('2007-01-19 18:45:01.00','18:50:25'); INSERT INTO t1 VALUES ('2007-01-23 18:04:25.01','18:50:27'); INSERT INTO t1 VALUES ('2007-06-20 18:42:45.01','18:50:48'); INSERT INTO t1 VALUES ('2007-08-27 21:00:00.00','18:50:22'); INSERT INTO t1 VALUES ('2007-10-11 09:54:15.02','18:50:45'); INSERT INTO t1 VALUES ('2008-01-24 18:55:00.04','18:50:10'); INSERT INTO t1 VALUES ('2008-03-03 16:06:21.03','18:50:16'); INSERT INTO t1 VALUES ('2008-03-23 21:00:00.00','18:50:26'); INSERT INTO t1 VALUES ('2008-05-28 10:12:34.06','18:49:57'); INSERT INTO t1 VALUES ('2009-06-09 21:31:23.04','18:50:21'); INSERT INTO t1 VALUES ('2009-06-14 09:15:36.06','18:50:09'); INSERT INTO t1 VALUES ('2009-06-30 23:31:57.01','18:49:55'); INSERT INTO t1 VALUES ('2009-12-25 17:54:17.00','18:50:13'); INSERT INTO t1 VALUES ('2005-12-15 18:49:06.05','00:00:00'); SELECT col_timestamp_2_not_null_key FROM t1 WHERE CONVERT_TZ(GREATEST('2005-11-05 18:16:50.055749', STR_TO_DATE(CURRENT_TIME, '%Y')), '+00:00', CONCAT('+', CONCAT_WS(':', 7, 5))); col_timestamp_2_not_null_key Warnings: Warning 1292 Truncated incorrect date value: '17:28:30' Warning 1292 Incorrect datetime value: '2017-00-00' DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13365131 - VALGRIND: CONDITIONAL JUMP OR MOVE DEPENDS ON UNINITIALISED IN MY_TIME_COMPARE # CREATE TABLE t1 ( col_time_not_null_key time not null, col_timestamp_6_not_null_key timestamp(6) not null NULL DEFAULT 0, col_datetime_6_not_null_key datetime(6) not null, col_datetime_6_key datetime(6), col_time_3_not_null_key time(3) not null, col_datetime_3_key datetime(3), key (col_datetime_6_not_null_key), key (col_datetime_3_key)); CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1; SELECT col_datetime_3_key AS c1 FROM v1 WHERE SYSDATE() IS NULL OR col_datetime_6_not_null_key < TIMEDIFF('0000-00-00','2002-11-24' ) AND col_timestamp_6_not_null_key IS NULL; c1 Warnings: Warning 1292 Truncated incorrect time value: '0000-00-00' Warning 1292 Truncated incorrect time value: '2002-11-24' Warning 1292 Truncated incorrect time value: '0000-00-00' Warning 1292 Truncated incorrect time value: '2002-11-24' DROP VIEW v1; DROP TABLE t1; # # Bug#13401354 ITEM->FIELD_TYPE() == MYSQL_TYPE_TIME || ITEM->FIELD_TYPE() == MYSQL_TYPE_NULL # CREATE TABLE t1 (col_time_not_null TIME NOT NULL); SELECT * FROM t1 WHERE col_time_not_null = DATE(NULL) AND col_time_not_null = TIME(NULL); col_time_not_null DROP TABLE t1; CREATE TABLE t1 ( col_date DATE, col_time_not_null TIME not null, pk TIMESTAMP(6), col_timestamp_3_not_null_key TIMESTAMP(3) NOT NULL, col_date_not_null DATE NOT NULL, col_time_3_key TIME(3), col_timestamp_6_key TIMESTAMP(6) NOT NULL, col_datetime DATETIME, col_datetime_6 DATETIME(6), col_timestamp_3_key TIMESTAMP(3) NOT NULL, col_time_6_not_null TIME(6) NOT NULL, col_time_6 TIME(6), col_time_6_not_null_key TIME(6) NOT NULL, col_datetime_not_null DATETIME NOT NULL, col_datetime_3_not_null_key DATETIME(3) NOT NULL, KEY (col_datetime_3_not_null_key)); SELECT col_time_6 AS c1, NOW() AS c2 FROM t1 WHERE col_datetime_not_null BETWEEN SUBTIME('0000-00-00','00:00:00') AND col_date_not_null AND col_time_not_null=STR_TO_DATE(DATE_FORMAT(TIME('00:00:00.000000'),CONCAT_WS('-','%s','%k' )),CONCAT_WS(':','%i','%M')) AND col_date BETWEEN UNIX_TIMESTAMP('0000-00-00 00:00:00') AND col_timestamp_3_key AND col_datetime_6 NOT IN (col_time_6_not_null,'0000-00-00') AND col_time_not_null = TIMEDIFF(CURDATE(),'00:00:00.000000') AND col_time_3_key NOT IN (col_timestamp_6_key,pk) AND col_timestamp_3_not_null_key < col_datetime; c1 c2 DROP TABLE t1; # # Bug#13399082 - ASSERTION `MON > 0 && MON < 13' FAILED IN TZTIME.CC | SEC_SINCE_EPOCH # SET TIME_ZONE='+02:00'; SELECT UNIX_TIMESTAMP(STR_TO_DATE('2020','%Y')); UNIX_TIMESTAMP(STR_TO_DATE('2020','%Y')) NULL Warnings: Warning 1411 Incorrect datetime value: '2020' for function str_to_date SET TIME_ZONE=DEFAULT; # This should return NULL CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES(NULL); SELECT UNIX_TIMESTAMP(a) FROM t1; UNIX_TIMESTAMP(a) NULL DROP TABLE t1; SELECT UNIX_TIMESTAMP(NULL); UNIX_TIMESTAMP(NULL) NULL SELECT UNIX_TIMESTAMP(DATE(NULL)); UNIX_TIMESTAMP(DATE(NULL)) NULL SELECT UNIX_TIMESTAMP(TIME(NULL)); UNIX_TIMESTAMP(TIME(NULL)) NULL SELECT UNIX_TIMESTAMP(TIMESTAMP(NULL)); UNIX_TIMESTAMP(TIMESTAMP(NULL)) NULL SELECT CONCAT(UNIX_TIMESTAMP(NULL)); CONCAT(UNIX_TIMESTAMP(NULL)) NULL SELECT CAST(UNIX_TIMESTAMP(NULL) AS SIGNED); CAST(UNIX_TIMESTAMP(NULL) AS SIGNED) NULL SELECT CAST(UNIX_TIMESTAMP(NULL) AS DECIMAL(23,6)); CAST(UNIX_TIMESTAMP(NULL) AS DECIMAL(23,6)) NULL # This should return 0 CREATE TABLE t1 (a VARCHAR(30)); INSERT INTO t1 VALUES ('0000-01-01 00:00:00'),('2001-00-01 00:00:01'),('2001-01-00 00:00:00'), ('0000-00-00 00:00:01'),('0000-00-00 00:00:00.1'); SELECT UNIX_TIMESTAMP(a) FROM t1; UNIX_TIMESTAMP(a) NULL NULL NULL NULL NULL Warnings: Warning 1292 Incorrect datetime value: '2001-00-01 00:00:01' Warning 1292 Incorrect datetime value: '2001-01-00 00:00:00' Warning 1292 Incorrect datetime value: '0000-00-00 00:00:01' Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00.1' DROP TABLE t1; SELECT UNIX_TIMESTAMP('0000-01-01 00:00:00'); UNIX_TIMESTAMP('0000-01-01 00:00:00') NULL SELECT UNIX_TIMESTAMP('2001-00-01 00:00:00'); UNIX_TIMESTAMP('2001-00-01 00:00:00') NULL Warnings: Warning 1292 Incorrect datetime value: '2001-00-01 00:00:00' SELECT UNIX_TIMESTAMP('2001-01-00 00:00:00'); UNIX_TIMESTAMP('2001-01-00 00:00:00') NULL Warnings: Warning 1292 Incorrect datetime value: '2001-01-00 00:00:00' SELECT UNIX_TIMESTAMP('0000-00-00 10:10:20'); UNIX_TIMESTAMP('0000-00-00 10:10:20') NULL Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 10:10:20' SELECT UNIX_TIMESTAMP('0000-00-00 00:00:00.1'); UNIX_TIMESTAMP('0000-00-00 00:00:00.1') NULL Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00.1' SELECT UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 10:10:20'); UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 10:10:20') NULL SELECT UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 00:00:00.1'); UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 00:00:00.1') NULL SELECT UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 10:10:20')); UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 10:10:20')) NULL Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 10:10:20' SELECT UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 00:00:00.1')); UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 00:00:00.1')) NULL Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00.1' # # Bug#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP # SET timestamp=UNIX_TIMESTAMP('2011-11-18 14:36:00'); CREATE TABLE t1 ( pk time(2) NOT NULL DEFAULT '00:00:00.00', col_timestamp_3_not_null timestamp(3) NULL DEFAULT '0000-00-00 00:00:00.000', col_datetime_1_key datetime(1) DEFAULT NULL, col_datetime_6_not_null_key datetime(6) NOT NULL, col_datetime_2_not_null datetime(2) NOT NULL, PRIMARY KEY (pk), KEY col_datetime_1_key (col_datetime_1_key), KEY col_datetime_6_not_null_key (col_datetime_6_not_null_key)) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES ('19:14:35.36','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0','2000-08-28 07:34:20.051690','2009-09-20 07:32:39.06'); INSERT INTO t1 VALUES ('19:14:37.36','2005-07-04 08:03:50.051','0000-00-00 00:00:00.0','0000-00-00 00:00:00.000000','0000-00-00 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:39.36','0000-00-00 00:00:00.000',NULL,'2005-10-11 07:24:45.059064','2009-11-19 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:41.36','2005-11-22 21:00:00.000',NULL,'0000-00-00 00:00:00.000000','0000-00-00 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:43.36','2009-11-06 21:00:00.000','2007-07-03 11:13:08.0','2002-09-02 00:17:37.037583','2003-09-25 09:29:41.00'); INSERT INTO t1 VALUES ('19:14:36.36','2009-08-15 05:43:18.029','2009-01-18 00:00:00.0','0000-00-00 00:00:00.000000','2007-07-20 08:31:37.02'); INSERT INTO t1 VALUES ('19:14:38.36','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0','0000-00-00 00:00:00.000000','2004-08-16 05:11:47.04'); INSERT INTO t1 VALUES ('19:14:40.36','2000-04-16 21:00:00.000',NULL,'2004-04-27 00:00:00.000000','2009-06-03 00:18:49.04'); INSERT INTO t1 VALUES ('19:14:42.36','2009-01-18 20:46:41.035','2003-03-23 11:37:04.0','0000-00-00 00:00:00.000000','2009-12-26 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:44.36','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0','2005-09-14 15:13:53.062460','0000-00-00 00:00:00.00'); CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1; SELECT UNIX_TIMESTAMP(col_datetime_2_not_null) AS c1 FROM v1 WHERE col_datetime_6_not_null_key > col_datetime_1_key AND col_timestamp_3_not_null IS NOT NULL ORDER BY 1; c1 NULL 1253424759.06 DROP VIEW v1; DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13394031 VALGRIND: CONDITIONAL JUMP/MOVE DEPENDS ON UNINITIALISED IN FIELD::IS_REAL_NULL # CREATE TABLE t1 ( pk time, c_timestamp timestamp NULL DEFAULT 0, c_time time, primary key (pk), key (c_timestamp) ); INSERT INTO t1 VALUES (SEC_TO_TIME(2),'20000627024305.040518','00:00:00.000000'), (SEC_TO_TIME(4),'0000-00-00','20010412233415.034269'), (SEC_TO_TIME(46),'20030628121312.000376','20020323065409.039577'), (SEC_TO_TIME(48),'20071219173306.048009',NULL), (SEC_TO_TIME(50),'0000-00-00',NULL); Warnings: Note 1265 Data truncated for column 'c_time' at row 2 Note 1265 Data truncated for column 'c_time' at row 3 SELECT c_time FROM t1; c_time 00:00:00 23:34:15 06:54:09 NULL NULL SELECT c_time AS c1 FROM t1 WHERE c_timestamp NOT IN (NULL, '0000-00-00 00:00:00'); c1 DROP TABLE t1; # # Various tests for better gcov coverage # # # Comparing DATETIME value to TIME(NULL) # SELECT TIMESTAMP'2001-01-01 00:00:00' = TIME(NULL); TIMESTAMP'2001-01-01 00:00:00' = TIME(NULL) NULL # # BUG#13450867 - CRASH ON UPDATE A TIME COLUMN # CREATE TABLE t1 (a TIME(6), b TIME(6), c TIME(6), d TIME(6)); INSERT INTO t1 VALUES ('-838:59:59.999999', '-838:59:59.000001', '838:59:59.999999', '838:59:59.000001'); SELECT * FROM t1; a b c d -838:59:59.999999 -838:59:59.000001 838:59:59.999999 838:59:59.000001 UPDATE t1 SET a= a - INTERVAL 999999 MICROSECOND, b= b - INTERVAL 1 MICROSECOND, c= c + INTERVAL 999999 MICROSECOND, d= d + INTERVAL 1 MICROSECOND; Warnings: Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow SELECT * FROM t1; a b c d NULL -838:59:59.000002 NULL 838:59:59.000002 DROP TABLE t1; SELECT SEC_TO_TIME(3200399.999999); SEC_TO_TIME(3200399.999999) 838:59:59.999999 Warnings: Warning 1292 Truncated incorrect time value: '3200399.999999' SELECT SEC_TO_TIME(3200399.000001); SEC_TO_TIME(3200399.000001) 838:59:59.999999 Warnings: Warning 1292 Truncated incorrect time value: '3200399.000001' SELECT SEC_TO_TIME(-3200399.999999); SEC_TO_TIME(-3200399.999999) -838:59:59.999999 Warnings: Warning 1292 Truncated incorrect time value: '-3200399.999999' SELECT SEC_TO_TIME(-3200399.000001); SEC_TO_TIME(-3200399.000001) -838:59:59.999999 Warnings: Warning 1292 Truncated incorrect time value: '-3200399.000001' # # BUG#13451866 - DIFFERENCE IN RESULTS WHEN USING # EXTRACT( MINUTE_MICROSECOND ) # CREATE TABLE t1 (a DATETIME(6) DEFAULT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); SELECT * FROM t1; a 0000-00-00 00:00:00.000000 SELECT EXTRACT(MINUTE_MICROSECOND FROM a) FROM t1; EXTRACT(MINUTE_MICROSECOND FROM a) 0 SELECT EXTRACT(MINUTE_MICROSECOND FROM '0000-00-00 00:00:00.000000'); EXTRACT(MINUTE_MICROSECOND FROM '0000-00-00 00:00:00.000000') 0 DROP TABLE t1; # # BUG#13436875 - ASSERTION '!ARGS[0]->IS_TEMPORAL() || # !ARGS[1]->IS_TEMPORAL()' # CREATE TABLE t1 (a DATETIME NOT NULL); SELECT 1 FROM t1 WHERE GREATEST(a, a) / a; 1 SELECT 1 FROM t1 WHERE LEAST(a, a) / a; 1 SELECT 1 FROM t1 WHERE COALESCE(a, a) / a; 1 SELECT 1 FROM t1 WHERE IF(0, a, a) / a; 1 SELECT 1 FROM t1 WHERE IFNULL(a, a) / a; 1 SELECT 1 FROM t1 WHERE CASE WHEN 0 then a ELSE a END / a; 1 SELECT 1 FROM t1 WHERE (SELECT a FROM t1) / a; 1 DROP TABLE t1; # # BUG#13616434 ASSERTION FAILED: NANOSECONDS < 1000000000 # SELECT EXTRACT(DAY FROM (-0.1111111111)), EXTRACT(YEAR FROM (-0.1111111)), EXTRACT(YEAR_MONTH FROM (-0.1111111111)), EXTRACT(DAY FROM (-0.1111111)), EXTRACT(QUARTER FROM (-0.1111111111)), EXTRACT(MONTH FROM (-0.1111111)), EXTRACT(WEEK FROM (-0.1111111)), DATE(-0.1111111), QUARTER(-0.1111111111), TIMESTAMP(-0.1111111111), LAST_DAY(-0.1111111111), DAY(-0.1111111111), MONTH(-0.1111111111), YEAR(-0.1111111), DAYOFMONTH(-0.1111111111), TIMESTAMP((-0.1111111111),'{$x'), DATE_FORMAT(-0.1111111111,'+'), CONVERT(-0.1111111,DATE), CAST(-0.1111111111 AS DATE); EXTRACT(DAY FROM (-0.1111111111)) EXTRACT(YEAR FROM (-0.1111111)) EXTRACT(YEAR_MONTH FROM (-0.1111111111)) EXTRACT(DAY FROM (-0.1111111)) EXTRACT(QUARTER FROM (-0.1111111111)) EXTRACT(MONTH FROM (-0.1111111)) EXTRACT(WEEK FROM (-0.1111111)) DATE(-0.1111111) QUARTER(-0.1111111111) TIMESTAMP(-0.1111111111) LAST_DAY(-0.1111111111) DAY(-0.1111111111) MONTH(-0.1111111111) YEAR(-0.1111111) DAYOFMONTH(-0.1111111111) TIMESTAMP((-0.1111111111),'{$x') DATE_FORMAT(-0.1111111111,'+') CONVERT(-0.1111111,DATE) CAST(-0.1111111111 AS DATE) NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Warnings: Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' # # Bug#13375823 - FSP(DECIMAL) RESULT DIFFERENCE WITH QUERY USING UNION ALL # CREATE TABLE t1 (a DATETIME(3) NOT NULL); INSERT INTO t1 VALUES ('2000-07-16 05:58:04.035'); INSERT INTO t1 VALUES ('2008-08-21 00:00:00.000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000'); # Testing INT number SELECT GREATEST(a, 1323) FROM t1; GREATEST(a, 1323) 2000-07-16 05:58:04.035 2008-08-21 00:00:00.000 0000-00-00 00:00:00.000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' (SELECT GREATEST(a, 1323) FROM t1) UNION ALL (SELECT GREATEST(a, 1323) FROM t1 LIMIT 0); GREATEST(a, 1323) 2000-07-16 05:58:04.035 2008-08-21 00:00:00.000 0000-00-00 00:00:00.000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' SELECT LEAST(a, 1323) FROM t1; LEAST(a, 1323) 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' (SELECT LEAST(a, 1323) FROM t1) UNION ALL (SELECT LEAST(a, 1323) FROM t1 LIMIT 0); LEAST(a, 1323) 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' # Testing DECIMAL number SELECT GREATEST(a, 1323.123456) FROM t1; GREATEST(a, 1323.123456) 2000-07-16 05:58:04.035000 2008-08-21 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' (SELECT GREATEST(a, 1323.123456) FROM t1) UNION ALL (SELECT GREATEST(a, 1323.123456) FROM t1 LIMIT 0); GREATEST(a, 1323.123456) 2000-07-16 05:58:04.035156 2008-08-21 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' SELECT LEAST(a, 1323.123456) FROM t1; LEAST(a, 1323.123456) 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' (SELECT LEAST(a, 1323.123456) FROM t1) UNION ALL (SELECT LEAST(a, 1323.123456) FROM t1 LIMIT 0); LEAST(a, 1323.123456) 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' Warning 1292 Incorrect datetime value: '1323.123456' # Testing REAL number SELECT GREATEST(a, 1323e0) FROM t1; GREATEST(a, 1323e0) 2000-07-16 05:58:04.035000 2008-08-21 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' (SELECT GREATEST(a, 1323e0) FROM t1) UNION ALL (SELECT GREATEST(a, 1323e0) FROM t1 LIMIT 0); GREATEST(a, 1323e0) 2000-07-16 05:58:04.035156 2008-08-21 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' SELECT LEAST(a, 1323e0) FROM t1; LEAST(a, 1323e0) 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' (SELECT LEAST(a, 1323e0) FROM t1) UNION ALL (SELECT LEAST(a, 1323e0) FROM t1 LIMIT 0); LEAST(a, 1323e0) 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' Warning 1292 Incorrect datetime value: '1323' DROP TABLE t1; # Make sure precision of 6 fractional digits does not get lost CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 01:01:01.123456'); SELECT GREATEST(a,10), LEAST(a,10) FROM t1; GREATEST(a,10) LEAST(a,10) 2001-01-01 01:01:01.123456 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '10' Warning 1292 Incorrect datetime value: '10' DROP TABLE t1; # # Bug#13976233 ASSERTION FAILED: !CHECK_TIME_MMSSFF_RANGE(LTIME), FILE SQL_TIME.CC, LINE 304 # SELECT SECOND(4.99999999991e0); SECOND(4.99999999991e0) 4 SELECT SECOND(-4.99999999991e0); SECOND(-4.99999999991e0) 4 SELECT SECOND(TRUNCATE('5',180)); SECOND(TRUNCATE('5',180)) 4 # # Bug#17080703 INCONSISTENT DATETIME CONVERSIONS WITH FRACTIONAL SECONDS # # Test for TIMESTAMP datatype. SELECT TIMESTAMP '20130710010203'; TIMESTAMP '20130710010203' 2013-07-10 01:02:03 SELECT TIMESTAMP '201307100102031'; ERROR HY000: Incorrect DATETIME value: '201307100102031' SELECT TIMESTAMP '2013071001020312'; ERROR HY000: Incorrect DATETIME value: '2013071001020312' SELECT TIMESTAMP '20130710010203123'; ERROR HY000: Incorrect DATETIME value: '20130710010203123' SELECT TIMESTAMP '201307100102031234'; ERROR HY000: Incorrect DATETIME value: '201307100102031234' SELECT TIMESTAMP '2013071001020312345'; ERROR HY000: Incorrect DATETIME value: '2013071001020312345' SELECT TIMESTAMP '20130710010203123456'; ERROR HY000: Incorrect DATETIME value: '20130710010203123456' # Test non decimal point as delimiter for fractional seconds. SELECT TIMESTAMP '2013:07:10 01:02:03:04'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01:02:03:04' # Test for invalid seconds >= 60 properly separated by decimal point with fractions. SELECT TIMESTAMP '2013:07:10 01.02.131'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01.02.131' SELECT TIMESTAMP '2013:07:10 01.02.131.2'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01.02.131.2' SELECT TIMESTAMP '2013:07:10 01.02.0312.3'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01.02.0312.3' SELECT TIMESTAMP '2013.07.10 01.02.131.23456'; ERROR HY000: Incorrect DATETIME value: '2013.07.10 01.02.131.23456' SELECT TIMESTAMP '201307100102031.'; ERROR HY000: Incorrect DATETIME value: '201307100102031.' SELECT TIMESTAMP '2012071001021.1'; ERROR HY000: Incorrect DATETIME value: '2012071001021.1' # Test for valid seconds properly separated by decimal point with fractions. SELECT TIMESTAMP '2013:07:10 01.02.0.31'; TIMESTAMP '2013:07:10 01.02.0.31' 2013-07-10 01:02:00.31 SELECT TIMESTAMP '20130710010203.'; TIMESTAMP '20130710010203.' 2013-07-10 01:02:03 # Test for valid seconds properly separated by decimal point with fractions. SELECT TIMESTAMP '20130710010203.1'; TIMESTAMP '20130710010203.1' 2013-07-10 01:02:03.1 SELECT TIMESTAMP '20130710010203.12'; TIMESTAMP '20130710010203.12' 2013-07-10 01:02:03.12 SELECT TIMESTAMP '20130710010203.123'; TIMESTAMP '20130710010203.123' 2013-07-10 01:02:03.123 SELECT TIMESTAMP '20130710010203.1234'; TIMESTAMP '20130710010203.1234' 2013-07-10 01:02:03.1234 SELECT TIMESTAMP '20130710010203.12345'; TIMESTAMP '20130710010203.12345' 2013-07-10 01:02:03.12345 SELECT TIMESTAMP '20130710010203.123456'; TIMESTAMP '20130710010203.123456' 2013-07-10 01:02:03.123456 SELECT TIMESTAMP '20130710010203.1234567'; TIMESTAMP '20130710010203.1234567' 2013-07-10 01:02:03.123456 Warnings: Note 1292 Truncated incorrect datetime value: '20130710010203.1234567' # Test for valid time literals in insert operation. CREATE TABLE t(key1 INT UNIQUE, col TIMESTAMP(6)); INSERT INTO t VALUES (1, '20130710010203.1'), (2, '20130710010203.12'), (3, '20130710010203.123'), (4, '20130710010203.1234'), (5,'20130710010203.12345'), (6, '20130710010203.123456'), (7, '201207100102'); SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.100000 2 2013-07-10 01:02:03.120000 3 2013-07-10 01:02:03.123000 4 2013-07-10 01:02:03.123400 5 2013-07-10 01:02:03.123450 6 2013-07-10 01:02:03.123456 7 2020-12-07 10:01:02.000000 DELETE FROM t; # Test for invalid time literals in insert operation. INSERT INTO t VALUES (1, '201307100102031'), (2, '2013071001020312'), (3, '20130710010203123'), (4, '201307100102031234'), (5, '2013071001020312345'), (6, '20130710010203123456'), (7, '2013:07:10 01.02.031'), (8, '2013:07:10 01.02.031.2'), (9, '2013:07:10 01.02.0312.3'), (10, '2012071001021.1'), (11, '2012071001021'); Warnings: Warning 1265 Data truncated for column 'col' at row 1 Warning 1265 Data truncated for column 'col' at row 2 Warning 1265 Data truncated for column 'col' at row 3 Warning 1265 Data truncated for column 'col' at row 4 Warning 1265 Data truncated for column 'col' at row 5 Warning 1265 Data truncated for column 'col' at row 6 Warning 1265 Data truncated for column 'col' at row 9 Warning 1265 Data truncated for column 'col' at row 10 Warning 1265 Data truncated for column 'col' at row 11 SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.000000 2 2013-07-10 01:02:03.000000 3 2013-07-10 01:02:03.000000 4 2013-07-10 01:02:03.000000 5 2013-07-10 01:02:03.000000 6 2013-07-10 01:02:03.000000 7 2013-07-10 01:02:31.000000 8 2013-07-10 01:02:31.200000 9 0000-00-00 00:00:00.000000 10 2020-12-07 10:01:02.000000 11 2020-12-07 10:01:02.000000 DROP TABLE t; # Test for DATETIME datatype. # Test for valid time literals in insert operation. CREATE TABLE t(key1 INT UNIQUE, col DATETIME(6)); INSERT INTO t VALUES (1, '20130710010203.1'), (2, '20130710010203.12'), (3, '20130710010203.123'), (4, '20130710010203.1234'), (5, '20130710010203.12345'), (6, '20130710010203.123456'), (7, '201207100102'); SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.100000 2 2013-07-10 01:02:03.120000 3 2013-07-10 01:02:03.123000 4 2013-07-10 01:02:03.123400 5 2013-07-10 01:02:03.123450 6 2013-07-10 01:02:03.123456 7 2020-12-07 10:01:02.000000 DELETE FROM t; # Test for invalid time literals in insert operation. INSERT INTO t VALUES (1, '201307100102031'), (2, '2013071001020312'), (3, '20130710010203123'), (4, '201307100102031234'), (5, '2013071001020312345'), (6, '20130710010203123456'), (7, '2013:07:10 01.02.031'), (8, '2013:07:10 01.02.031.2'), (9, '2013:07:10 01.02.0312.3'), (10, '2012071001021.1'), (11, '2012071001021'); Warnings: Warning 1265 Data truncated for column 'col' at row 1 Warning 1265 Data truncated for column 'col' at row 2 Warning 1265 Data truncated for column 'col' at row 3 Warning 1265 Data truncated for column 'col' at row 4 Warning 1265 Data truncated for column 'col' at row 5 Warning 1265 Data truncated for column 'col' at row 6 Warning 1265 Data truncated for column 'col' at row 9 Warning 1265 Data truncated for column 'col' at row 10 Warning 1265 Data truncated for column 'col' at row 11 SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.000000 2 2013-07-10 01:02:03.000000 3 2013-07-10 01:02:03.000000 4 2013-07-10 01:02:03.000000 5 2013-07-10 01:02:03.000000 6 2013-07-10 01:02:03.000000 7 2013-07-10 01:02:31.000000 8 2013-07-10 01:02:31.200000 9 0000-00-00 00:00:00.000000 10 2020-12-07 10:01:02.000000 11 2020-12-07 10:01:02.000000 DROP TABLE t; # Test for TIME datatype. SELECT TIME '010203'; TIME '010203' 01:02:03 SELECT TIME '1010203'; TIME '1010203' 101:02:03 SELECT TIME '01010203'; TIME '01010203' 101:02:03 SELECT TIME '10102031'; ERROR HY000: Incorrect TIME value: '10102031' SELECT TIME '101020312'; ERROR HY000: Incorrect TIME value: '101020312' SELECT TIME '1010203123'; ERROR HY000: Incorrect TIME value: '1010203123' SELECT TIME '10102031234'; ERROR HY000: Incorrect TIME value: '10102031234' SELECT TIME '101020312345'; ERROR HY000: Incorrect TIME value: '101020312345' SELECT TIME '1010203123456'; ERROR HY000: Incorrect TIME value: '1010203123456' # Test non decimal point as delimiter for fractional seconds. SELECT TIME '01:02:03:04'; ERROR HY000: Incorrect TIME value: '01:02:03:04' # Test for invalid seconds >= 60 properly separated by decimal point with fractions. SELECT TIME '01:02:131'; ERROR HY000: Incorrect TIME value: '01:02:131' SELECT TIME '01:02:131.2'; ERROR HY000: Incorrect TIME value: '01:02:131.2' SELECT TIME '01:02:0312.3'; ERROR HY000: Incorrect TIME value: '01:02:0312.3' SELECT TIME '01:02:131.23456'; ERROR HY000: Incorrect TIME value: '01:02:131.23456' SELECT TIME '11102031.'; ERROR HY000: Incorrect TIME value: '11102031.' # Test for valid seconds properly separated by decimal point with fractions. SELECT TIME '01:02:0.31'; TIME '01:02:0.31' 01:02:00.31 SELECT TIME '010203.'; TIME '010203.' 01:02:03 # Test for valid seconds properly separated by decimal point with fractions. SELECT TIME '110203.1'; TIME '110203.1' 11:02:03.1 SELECT TIME '010203.12'; TIME '010203.12' 01:02:03.12 SELECT TIME '010203.123'; TIME '010203.123' 01:02:03.123 SELECT TIME '010203.1234'; TIME '010203.1234' 01:02:03.1234 SELECT TIME '010203.12345'; TIME '010203.12345' 01:02:03.12345 SELECT TIME '010203.123456'; TIME '010203.123456' 01:02:03.123456 SELECT TIME '010203.1234567'; TIME '010203.1234567' 01:02:03.123456 Warnings: Note 1292 Truncated incorrect time value: '010203.1234567' SELECT TIME '01021.1'; TIME '01021.1' 00:10:21.1 # Test for valid time literals in insert operation. CREATE TABLE t(key1 INT UNIQUE, col TIME(6)); INSERT INTO t VALUES (1, '010203.1'), (2, '010203.12'), (3, '010203.123'), (4, '010203.1234'), (5, '010203.12345'), (6, '010203.123456'), (7, '0203.123456'), (8, '03.123456'), (9, '0.123456'); SELECT * FROM t ORDER BY key1; key1 col 1 01:02:03.100000 2 01:02:03.120000 3 01:02:03.123000 4 01:02:03.123400 5 01:02:03.123450 6 01:02:03.123456 7 00:02:03.123456 8 00:00:03.123456 9 00:00:00.123456 DELETE FROM t; # Test for invalid time literals in insert operation. INSERT INTO t VALUES (1, '0102031'), (2, '01020312'), (3, '010203123'), (4, '0102031234'), (5, '01020312345'), (6, '010203123456'), (7, '01:02:031'), (8, '01:02:031.2'), (9, '01:02:0312.3'); Warnings: Warning 1264 Out of range value for column 'col' at row 3 Warning 1264 Out of range value for column 'col' at row 4 Warning 1264 Out of range value for column 'col' at row 5 Note 1265 Data truncated for column 'col' at row 6 Warning 1265 Data truncated for column 'col' at row 9 SELECT * FROM t ORDER BY key1; key1 col 1 10:20:31.000000 2 102:03:12.000000 3 838:59:59.999999 4 838:59:59.999999 5 838:59:59.999999 6 12:34:56.000000 7 01:02:31.000000 8 01:02:31.200000 9 00:00:00.000000 DROP TABLE t; # End of 5.6 tests