diff options
Diffstat (limited to 'mysql-test/main/type_timestamp_hires.test')
-rw-r--r-- | mysql-test/main/type_timestamp_hires.test | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/mysql-test/main/type_timestamp_hires.test b/mysql-test/main/type_timestamp_hires.test index 0b05f81ef42..27aed16d6be 100644 --- a/mysql-test/main/type_timestamp_hires.test +++ b/mysql-test/main/type_timestamp_hires.test @@ -40,3 +40,83 @@ show create table t1; create or replace table t1 (a timestamp(5) on update current_timestamp(6)); show create table t1; drop table t1; + + +--echo # +--echo # Start of 10.4 tests +--echo # + +--echo # +--echo # MDEV-20397 Support TIMESTAMP, DATETIME, TIME in ROUND() and TRUNCATE() +--echo # + +--echo # ROUND(timestamp) and TRUNCATE(timestamp) currently return DATETIME. +--echo # This may change in the future to return TIMESTAMP. + +CREATE TABLE t1 (a1 TIMESTAMP(6) NULL DEFAULT '2001-01-01 00:00:00', a2 TIMESTAMP(6) NOT NULL); +CREATE TABLE t2 AS SELECT + ROUND(a1) AS r1, + ROUND(a2) AS r2, + TRUNCATE(a1,0) AS t1, + TRUNCATE(a2,0) AS t2 +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; +DROP TABLE t1; + + +SET time_zone='+00:00'; + +CREATE TABLE t1 (a TIMESTAMP(6)); +INSERT INTO t1 VALUES +('1970-01-01 00:00:01.999999'), +('2000-01-01 00:00:00.999999'), +('2000-01-01 23:59:59.999999'), +('2000-02-29 23:59:59.999999'), +('2000-12-31 23:59:59.999999'), +('2001-01-01 00:00:00.999999'), +('2001-01-01 23:59:59.999999'), +('2001-02-28 23:59:59.999999'), +('2001-12-31 23:59:59.999999'), +('2038-01-19 03:14:07.999999'); + +SELECT a, TRUNCATE(a,0) FROM t1; +SELECT a, TRUNCATE(a,1) FROM t1; +SELECT a, TRUNCATE(a,2) FROM t1; +SELECT a, TRUNCATE(a,3) FROM t1; +SELECT a, TRUNCATE(a,4) FROM t1; +SELECT a, TRUNCATE(a,5) FROM t1; +SELECT a, TRUNCATE(a,6) FROM t1; +SELECT a, TRUNCATE(a,7) FROM t1; +SELECT a, TRUNCATE(a,-1) FROM t1; +SELECT a, TRUNCATE(a,-6) FROM t1; + +SELECT a, ROUND(a) FROM t1; +SELECT a, ROUND(a,0) FROM t1; +SELECT a, ROUND(a,1) FROM t1; +SELECT a, ROUND(a,2) FROM t1; +SELECT a, ROUND(a,3) FROM t1; +SELECT a, ROUND(a,4) FROM t1; +SELECT a, ROUND(a,5) FROM t1; +SELECT a, ROUND(a,6) FROM t1; +SELECT a, ROUND(a,7) FROM t1; +SELECT a, ROUND(a,-1) FROM t1; +SELECT a, ROUND(a,-6) FROM t1; + +DROP TABLE t1; + +SET time_zone=DEFAULT; + + +--echo # +--echo # MDEV-23311 CEILING() and FLOOR() convert temporal input to numbers, unlike ROUND() and TRUNCATE() +--echo # + +CREATE TABLE t1 (a TIMESTAMP NOT NULL); +CREATE TABLE t2 AS SELECT FLOOR(a), CEILING(a) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +--echo # +--echo # End of 10.4 tests +--echo # |