mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
9af177042e
Partitioning/InnoDB changes are *not* merged (they'll come from 5.6) TokuDB does not compile (not updated to 10.0 SE API)
316 lines
12 KiB
Text
316 lines
12 KiB
Text
drop table if exists t1, test;
|
|
select extract(DAY_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
extract(DAY_MICROSECOND FROM "1999-01-02 10:11:12.000123")
|
|
2101112000123
|
|
select extract(HOUR_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
extract(HOUR_MICROSECOND FROM "1999-01-02 10:11:12.000123")
|
|
101112000123
|
|
select extract(MINUTE_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
extract(MINUTE_MICROSECOND FROM "1999-01-02 10:11:12.000123")
|
|
1112000123
|
|
select extract(SECOND_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
extract(SECOND_MICROSECOND FROM "1999-01-02 10:11:12.000123")
|
|
12000123
|
|
select extract(MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
extract(MICROSECOND FROM "1999-01-02 10:11:12.000123")
|
|
123
|
|
select date_format("1997-12-31 23:59:59.000002", "%f");
|
|
date_format("1997-12-31 23:59:59.000002", "%f")
|
|
000002
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND);
|
|
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND)
|
|
2025-05-23 04:40:39.000001
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND);
|
|
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND)
|
|
1999-02-21 17:40:39.000001
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND);
|
|
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND)
|
|
1998-01-07 22:41:39.000001
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND);
|
|
date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND)
|
|
1998-01-01 02:46:40.000001
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND);
|
|
date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND)
|
|
1998-01-01 00:00:00.000001
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND);
|
|
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND)
|
|
1997-12-30 22:58:58.999999
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND);
|
|
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND)
|
|
1997-12-31 22:58:58.999999
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND);
|
|
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND)
|
|
1997-12-31 23:58:58.999999
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND);
|
|
date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND)
|
|
1997-12-31 23:59:58.999999
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND);
|
|
date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND)
|
|
1997-12-31 23:59:59.999999
|
|
select adddate("1997-12-31 23:59:59.000001", 10);
|
|
adddate("1997-12-31 23:59:59.000001", 10)
|
|
1998-01-10 23:59:59.000001
|
|
select subdate("1997-12-31 23:59:59.000001", 10);
|
|
subdate("1997-12-31 23:59:59.000001", 10)
|
|
1997-12-21 23:59:59.000001
|
|
select datediff("1997-12-31 23:59:59.000001","1997-12-30");
|
|
datediff("1997-12-31 23:59:59.000001","1997-12-30")
|
|
1
|
|
select datediff("1997-11-30 23:59:59.000001","1997-12-31");
|
|
datediff("1997-11-30 23:59:59.000001","1997-12-31")
|
|
-31
|
|
SET @@SQL_MODE="ALLOW_INVALID_DATES";
|
|
select datediff("1997-11-31 23:59:59.000001","1997-12-31");
|
|
datediff("1997-11-31 23:59:59.000001","1997-12-31")
|
|
NULL
|
|
Warnings:
|
|
Warning 1292 Incorrect datetime value: '1997-11-31 23:59:59.000001'
|
|
SET @@SQL_MODE="";
|
|
select datediff("1997-11-31 23:59:59.000001","1997-12-31");
|
|
datediff("1997-11-31 23:59:59.000001","1997-12-31")
|
|
NULL
|
|
Warnings:
|
|
Warning 1292 Incorrect datetime value: '1997-11-31 23:59:59.000001'
|
|
select datediff("1997-11-30 23:59:59.000001",null);
|
|
datediff("1997-11-30 23:59:59.000001",null)
|
|
NULL
|
|
select weekofyear("1997-11-30 23:59:59.000001");
|
|
weekofyear("1997-11-30 23:59:59.000001")
|
|
48
|
|
select makedate(03,1);
|
|
makedate(03,1)
|
|
2003-01-01
|
|
select makedate('0003',1);
|
|
makedate('0003',1)
|
|
2003-01-01
|
|
select makedate(1997,1);
|
|
makedate(1997,1)
|
|
1997-01-01
|
|
select makedate(1997,0);
|
|
makedate(1997,0)
|
|
NULL
|
|
select makedate(9999,365);
|
|
makedate(9999,365)
|
|
9999-12-31
|
|
select makedate(9999,366);
|
|
makedate(9999,366)
|
|
NULL
|
|
select makedate(100,1);
|
|
makedate(100,1)
|
|
0100-01-01
|
|
select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002");
|
|
addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002")
|
|
1998-01-02 01:01:01.000001
|
|
select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002");
|
|
subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002")
|
|
1997-12-30 22:58:57.999999
|
|
select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999");
|
|
addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999")
|
|
NULL
|
|
select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999");
|
|
subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999")
|
|
NULL
|
|
select subtime("01:00:00.999999", "02:00:00.999998");
|
|
subtime("01:00:00.999999", "02:00:00.999998")
|
|
-00:59:59.999999
|
|
select subtime("02:01:01.999999", "01:01:01.999999");
|
|
subtime("02:01:01.999999", "01:01:01.999999")
|
|
01:00:00
|
|
select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002");
|
|
timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002")
|
|
838:59:59.999999
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect time value: '8807:59:59.999999'
|
|
select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002");
|
|
timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002")
|
|
46:58:57.999999
|
|
select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002");
|
|
timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002")
|
|
-24:00:00.000001
|
|
select timediff("1997-12-31 23:59:59.000001","23:59:59.000001");
|
|
timediff("1997-12-31 23:59:59.000001","23:59:59.000001")
|
|
NULL
|
|
select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001");
|
|
timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001")
|
|
-00:00:00.000001
|
|
select timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50");
|
|
timediff("2005-01-11 15:48:49.999999", "2005-01-11 15:48:50")
|
|
-00:00:00.000001
|
|
select maketime(10,11,12);
|
|
maketime(10,11,12)
|
|
10:11:12
|
|
select maketime(25,11,12);
|
|
maketime(25,11,12)
|
|
25:11:12
|
|
select maketime(-25,11,12);
|
|
maketime(-25,11,12)
|
|
-25:11:12
|
|
select timestamp("2001-12-01", "01:01:01.999999");
|
|
timestamp("2001-12-01", "01:01:01.999999")
|
|
2001-12-01 01:01:01.999999
|
|
select timestamp("2001-13-01", "01:01:01.000001");
|
|
timestamp("2001-13-01", "01:01:01.000001")
|
|
NULL
|
|
Warnings:
|
|
Warning 1292 Incorrect datetime value: '2001-13-01'
|
|
select timestamp("2001-12-01", "25:01:01");
|
|
timestamp("2001-12-01", "25:01:01")
|
|
2001-12-02 01:01:01
|
|
select timestamp("2001-12-01 01:01:01.000100");
|
|
timestamp("2001-12-01 01:01:01.000100")
|
|
2001-12-01 01:01:01.000100
|
|
select timestamp("2001-12-01");
|
|
timestamp("2001-12-01")
|
|
2001-12-01 00:00:00
|
|
select day("1997-12-31 23:59:59.000001");
|
|
day("1997-12-31 23:59:59.000001")
|
|
31
|
|
select date("1997-12-31 23:59:59.000001");
|
|
date("1997-12-31 23:59:59.000001")
|
|
1997-12-31
|
|
select date("1997-13-31 23:59:59.000001");
|
|
date("1997-13-31 23:59:59.000001")
|
|
NULL
|
|
Warnings:
|
|
Warning 1292 Incorrect datetime value: '1997-13-31 23:59:59.000001'
|
|
select time("1997-12-31 23:59:59.000001");
|
|
time("1997-12-31 23:59:59.000001")
|
|
23:59:59.000001
|
|
select time("1997-12-31 25:59:59.000001");
|
|
time("1997-12-31 25:59:59.000001")
|
|
NULL
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect time value: '1997-12-31 25:59:59.000001'
|
|
select microsecond("1997-12-31 23:59:59.000001");
|
|
microsecond("1997-12-31 23:59:59.000001")
|
|
1
|
|
create table t1
|
|
select makedate(1997,1) as f1,
|
|
addtime(cast("1997-12-31 23:59:59.000001" as datetime(6)), "1 1:1:1.000002") as f2,
|
|
addtime(cast("23:59:59.999999" as time(6)) , "1 1:1:1.000002") as f3,
|
|
timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002") as f4,
|
|
timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002") as f5,
|
|
maketime(10,11,12) as f6,
|
|
timestamp(cast("2001-12-01" as date), "01:01:01") as f7,
|
|
date("1997-12-31 23:59:59.000001") as f8,
|
|
time("1997-12-31 23:59:59.000001") as f9;
|
|
describe t1;
|
|
Field Type Null Key Default Extra
|
|
f1 date YES NULL
|
|
f2 datetime(6) YES NULL
|
|
f3 time(6) YES NULL
|
|
f4 time(6) YES NULL
|
|
f5 time(6) YES NULL
|
|
f6 time YES NULL
|
|
f7 datetime YES NULL
|
|
f8 date YES NULL
|
|
f9 time(6) YES NULL
|
|
select * from t1;
|
|
f1 f2 f3 f4 f5 f6 f7 f8 f9
|
|
1997-01-01 1998-01-02 01:01:00.000003 49:01:01.000001 46:58:57.999999 -24:00:00.000001 10:11:12 2001-12-01 01:01:01 1997-12-31 23:59:59.000001
|
|
create table test(t1 datetime, t2 time, t3 time, t4 datetime);
|
|
insert into test values
|
|
('2001-01-01 01:01:01', '01:01:01', null, '2001-02-01 01:01:01'),
|
|
('2001-01-01 01:01:01', '-01:01:01', '-23:59:59', "1997-12-31 23:59:59.000001"),
|
|
('1997-12-31 23:59:59.000001', '-23:59:59', '-01:01:01', '2001-01-01 01:01:01'),
|
|
('2001-01-01 01:01:01', '01:01:01', '-1 01:01:01', null),
|
|
('2001-01-01 01:01:01', '-01:01:01', '1 01:01:01', '2001-01-01 01:01:01'),
|
|
('2001-01-01 01:01:01', null, '-1 01:01:01', null),
|
|
(null, null, null, null),
|
|
('2001-01-01 01:01:01', '01:01:01', '1 01:01:01', '2001-01-01 01:01:01');
|
|
SELECT ADDTIME(t1,t2) As ttt, ADDTIME(t2, t3) As qqq from test;
|
|
ttt qqq
|
|
2001-01-01 02:02:02 NULL
|
|
2001-01-01 00:00:00 -25:01:00
|
|
1997-12-31 00:00:00 -25:01:00
|
|
2001-01-01 02:02:02 -24:00:00
|
|
2001-01-01 00:00:00 24:00:00
|
|
NULL NULL
|
|
NULL NULL
|
|
2001-01-01 02:02:02 26:02:02
|
|
SELECT TIMEDIFF(t1, t4) As ttt, TIMEDIFF(t2, t3) As qqq,
|
|
TIMEDIFF(t3, t2) As eee, TIMEDIFF(t2, t4) As rrr from test;
|
|
ttt qqq eee rrr
|
|
-744:00:00 NULL NULL NULL
|
|
838:59:59 22:58:58 -22:58:58 NULL
|
|
-838:59:59 -22:58:58 22:58:58 NULL
|
|
NULL 26:02:02 -26:02:02 NULL
|
|
00:00:00 -26:02:02 26:02:02 NULL
|
|
NULL NULL NULL NULL
|
|
NULL NULL NULL NULL
|
|
00:00:00 -24:00:00 24:00:00 NULL
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect time value: '26305:01:02'
|
|
Warning 1292 Truncated incorrect time value: '-26305:01:02'
|
|
drop table t1, test;
|
|
select addtime("-01:01:01.01", "-23:59:59.1") as a;
|
|
a
|
|
-25:01:00.110000
|
|
select microsecond("1997-12-31 23:59:59.01") as a;
|
|
a
|
|
10000
|
|
select microsecond(19971231235959.01) as a;
|
|
a
|
|
10000
|
|
select date_add("1997-12-31",INTERVAL "10.09" SECOND_MICROSECOND) as a;
|
|
a
|
|
1997-12-31 00:00:10.090000
|
|
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
|
|
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f")
|
|
2003-01-02 10:11:12.001200
|
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10'),time('00:00:00');
|
|
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10') time('00:00:00')
|
|
-24:00:00 00:00:00
|
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00');
|
|
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')>time('00:00:00')
|
|
0
|
|
select timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00');
|
|
timediff('2008-09-29 20:10:10','2008-09-30 20:10:10')<time('00:00:00')
|
|
1
|
|
SELECT CAST(time('-73:42:12') AS DECIMAL);
|
|
CAST(time('-73:42:12') AS DECIMAL)
|
|
-734212
|
|
SELECT TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1Eq,
|
|
TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1NEq1,
|
|
TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=TIME('00:00:00') AS 1NEq2,
|
|
TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))= '00:00:00' AS 2Eq,
|
|
TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))= '00:00:00' AS 2NEq1,
|
|
TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))= '00:00:00' AS 2NEq2,
|
|
TIMEDIFF(TIME('17:00:00'),TIME('17:00:00'))=TIME(0) AS 3Eq,
|
|
TIMEDIFF(TIME('17:59:00'),TIME('17:00:00'))=TIME(0) AS 3NEq1,
|
|
TIMEDIFF(TIME('18:00:00'),TIME('17:00:00'))=TIME(0) AS 3NEq2,
|
|
TIME(0) AS Time0, TIME('00:00:00') AS Time00, '00:00:00' AS Literal0000,
|
|
TIMEDIFF(TIME('17:59:00'),TIME('17:00:00')),
|
|
TIMEDIFF(TIME('17:00:00'),TIME('17:59:00'));
|
|
1Eq 1NEq1 1NEq2 2Eq 2NEq1 2NEq2 3Eq 3NEq1 3NEq2 Time0 Time00 Literal0000 TIMEDIFF(TIME('17:59:00'),TIME('17:00:00')) TIMEDIFF(TIME('17:00:00'),TIME('17:59:00'))
|
|
1 0 0 1 0 0 1 0 0 00:00:00 00:00:00 00:00:00 00:59:00 -00:59:00
|
|
SELECT sec_to_time(3020399)=TIME('838:59:59');
|
|
sec_to_time(3020399)=TIME('838:59:59')
|
|
1
|
|
SELECT sec_to_time(-3020399)=TIME('-838:59:59');
|
|
sec_to_time(-3020399)=TIME('-838:59:59')
|
|
1
|
|
SELECT sec_to_time(-3020399)='-838:59:59';
|
|
sec_to_time(-3020399)='-838:59:59'
|
|
1
|
|
SELECT time(sec_to_time(-3020399))=TIME('-838:59:59');
|
|
time(sec_to_time(-3020399))=TIME('-838:59:59')
|
|
1
|
|
SELECT time(sec_to_time(-3020399))=TIME('-838:59:58');
|
|
time(sec_to_time(-3020399))=TIME('-838:59:58')
|
|
0
|
|
SELECT maketime(-1,0,1)='-01:00:01';
|
|
maketime(-1,0,1)='-01:00:01'
|
|
1
|
|
SELECT TIME(maketime(-1,0,1))=CAST('-01:00:01' AS TIME);
|
|
TIME(maketime(-1,0,1))=CAST('-01:00:01' AS TIME)
|
|
1
|
|
SELECT maketime(-1,0,1)=CAST('-01:00:01' AS TIME);
|
|
maketime(-1,0,1)=CAST('-01:00:01' AS TIME)
|
|
1
|
|
SELECT maketime(1,0,1)=CAST('01:00:01' AS TIME);
|
|
maketime(1,0,1)=CAST('01:00:01' AS TIME)
|
|
1
|
|
SELECT maketime(1,0,1)=CAST('01:00:02' AS TIME);
|
|
maketime(1,0,1)=CAST('01:00:02' AS TIME)
|
|
0
|