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) as exp;
exp
2025 -05 -23 04 :40 :39 .000001
select date_add("1997-12-31 23:59:59.000002" ,INTERVAL "10000:99:99.999999" HOUR_MICROSECOND) as exp;
exp
1999 -02 -21 17 :40 :39 .000001
select date_add("1997-12-31 23:59:59.000002" ,INTERVAL "10000:99.999999" MINUTE_MICROSECOND) as exp;
exp
1998 -01 -07 22 :41 :39 .000001
select date_add("1997-12-31 23:59:59.000002" ,INTERVAL "10000.999999" SECOND_MICROSECOND) as exp;
exp
1998 -01 -01 02 :46 :40 .000001
select date_add("1997-12-31 23:59:59.000002" ,INTERVAL "999999" MICROSECOND) as exp;
exp
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) as exp;
exp
1997 -12 -30 22 :58 :58 .999999
select date_sub("1998-01-01 00:00:00.000001" ,INTERVAL "1:1:1.000002" HOUR_MICROSECOND) as exp;
exp
1997 -12 -31 22 :58 :58 .999999
select date_sub("1998-01-01 00:00:00.000001" ,INTERVAL "1:1.000002" MINUTE_MICROSECOND) as exp;
exp
1997 -12 -31 23 :58 :58 .999999
select date_sub("1998-01-01 00:00:00.000001" ,INTERVAL "1.000002" SECOND_MICROSECOND) as exp;
exp
1997 -12 -31 23 :59 :58 .999999
select date_sub("1998-01-01 00:00:00.000001" ,INTERVAL "000002" MICROSECOND) as exp;
exp
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" ) as exp;
exp
1998 -01 -02 01 :01 :01 .000001
select subtime("1997-12-31 23:59:59.000001" , "1 1:1:1.000002" ) as exp;
exp
1997 -12 -30 22 :58 :57 .999999
select addtime("1997-12-31 23:59:59.999999" , "1998-01-01 01:01:01.999999" ) as exp;
exp
NULL
Warnings:
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '1998-01-01 01:01:01.999999'
select subtime("1997-12-31 23:59:59.999999" , "1998-01-01 01:01:01.999999" ) as exp;
exp
NULL
Warnings:
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '1998-01-01 01:01:01.999999'
select subtime("01:00:00.999999" , "02:00:00.999998" ) as exp;
exp
-00 :59 :59 .999999
select subtime("02:01:01.999999" , "01:01:01.999999" ) as exp;
exp
01 :00 :00
select timediff("1997-01-01 23:59:59.000001" ,"1995-12-31 23:59:59.000002" ) as exp;
exp
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" ) as exp;
exp
46 :58 :57 .999999
select timediff("1997-12-30 23:59:59.000001" ,"1997-12-31 23:59:59.000002" ) as exp;
exp
-24 :00 :00 .000001
select timediff("1997-12-31 23:59:59.000001" ,"23:59:59.000001" ) as exp;
exp
NULL
select timediff("2000:01:01 00:00:00" , "2000:01:01 00:00:00.000001" ) as exp;
exp
-00 :00 :00 .000001
select timediff("2005-01-11 15:48:49.999999" , "2005-01-11 15:48:50" ) as exp;
exp
-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 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' ) as exp;
timediff('2008-09-29 20:10:10' ,'2008-09-30 20:10:10' ) exp
-24 :00 :00 00 :00 :00
select timediff('2008-09-29 20:10:10' ,'2008-09-30 20:10:10' )>time('00:00:00' ) as exp;
exp
0
select timediff('2008-09-29 20:10:10' ,'2008-09-30 20:10:10' )<time('00:00:00' ) as exp;
exp
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 1 Eq ,
TIMEDIFF(TIME('17:59:00' ),TIME('17:00:00' ))=TIME('00:00:00' ) AS 1 NEq1,
TIMEDIFF(TIME('18:00:00' ),TIME('17:00:00' ))=TIME('00:00:00' ) AS 1 NEq2,
TIMEDIFF(TIME('17:00:00' ),TIME('17:00:00' ))= '00:00:00' AS 2 Eq ,
TIMEDIFF(TIME('17:59:00' ),TIME('17:00:00' ))= '00:00:00' AS 2 NEq1,
TIMEDIFF(TIME('18:00:00' ),TIME('17:00:00' ))= '00:00:00' AS 2 NEq2,
TIMEDIFF(TIME('17:00:00' ),TIME('17:00:00' ))=TIME(0 ) AS 3 Eq ,
TIMEDIFF(TIME('17:59:00' ),TIME('17:00:00' ))=TIME(0 ) AS 3 NEq1,
TIMEDIFF(TIME('18:00:00' ),TIME('17:00:00' ))=TIME(0 ) AS 3 NEq2,
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' ));
1 Eq 1 NEq1 1 NEq2 2 Eq 2 NEq1 2 NEq2 3 Eq 3 NEq1 3 NEq2 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
Messung V0.5 in Prozent C=73 H=100 G=87
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-10-08)
¤
*© Formatika GbR, Deutschland