mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
75d276ad61
Bug #39920: MySQL cannot deal with Leap Second expression in string literal. Updated MySQL time handling code to react correctly on UTC leap second additions. MySQL functions that return the OS current time, like e.g. CURDATE(), NOW() etc will return :59:59 instead of :59:60 or 59:61. As a result the reader will receive :59:59 for 2 or 3 consecutive seconds during the leap second. Original changesets: > revision-id: kgeorge@mysql.com-20081201141835-rg8nnnadujj5wl9f > parent: gshchepa@mysql.com-20081114172557-xh0jlzwal8ze3cy6 > committer: Georgi Kodinov <kgeorge@mysql.com> > branch nick: B39920-5.0-bugteam > timestamp: Mon 2008-12-01 16:18:35 +0200 > revision-id: kgeorge@mysql.com-20081201154106-c310zzy5or043rqa > parent: kgeorge@mysql.com-20081201145656-6kjq91oga5nxbbob > committer: Georgi Kodinov <kgeorge@mysql.com> > branch nick: B39920-merge-5.0-bugteam > timestamp: Mon 2008-12-01 17:41:06 +0200
49 lines
2.2 KiB
Text
49 lines
2.2 KiB
Text
drop table if exists t1;
|
|
create table t1 (i int, c varchar(20));
|
|
insert into t1 values
|
|
(unix_timestamp("2004-01-01 00:00:00"), "2004-01-01 00:00:00");
|
|
insert into t1 values
|
|
(unix_timestamp("2004-03-28 01:59:59"), "2004-03-28 01:59:59"),
|
|
(unix_timestamp("2004-03-28 02:30:00"), "2004-03-28 02:30:00"),
|
|
(unix_timestamp("2004-03-28 03:00:00"), "2004-03-28 03:00:00");
|
|
insert into t1 values
|
|
(unix_timestamp('2004-05-01 00:00:00'),'2004-05-01 00:00:00');
|
|
insert into t1 values
|
|
(unix_timestamp('2004-10-31 01:00:00'),'2004-10-31 01:00:00'),
|
|
(unix_timestamp('2004-10-31 02:00:00'),'2004-10-31 02:00:00'),
|
|
(unix_timestamp('2004-10-31 02:59:59'),'2004-10-31 02:59:59'),
|
|
(unix_timestamp('2004-10-31 04:00:00'),'2004-10-31 04:00:00'),
|
|
(unix_timestamp('2004-10-31 02:59:59'),'2004-10-31 02:59:59');
|
|
insert into t1 values
|
|
(unix_timestamp('1981-07-01 03:59:59'),'1981-07-01 03:59:59'),
|
|
(unix_timestamp('1981-07-01 04:00:00'),'1981-07-01 04:00:00');
|
|
insert into t1 values
|
|
(unix_timestamp('2009-01-01 02:59:59'),'2009-01-01 02:59:59'),
|
|
(unix_timestamp('2009-01-01 03:00:00'),'2009-01-01 03:00:00');
|
|
select i, from_unixtime(i), c from t1;
|
|
i from_unixtime(i) c
|
|
1072904422 2004-01-01 00:00:00 2004-01-01 00:00:00
|
|
1080428421 2004-03-28 01:59:59 2004-03-28 01:59:59
|
|
1080428422 2004-03-28 03:00:00 2004-03-28 02:30:00
|
|
1080428422 2004-03-28 03:00:00 2004-03-28 03:00:00
|
|
1083355222 2004-05-01 00:00:00 2004-05-01 00:00:00
|
|
1099170022 2004-10-31 01:00:00 2004-10-31 01:00:00
|
|
1099177222 2004-10-31 02:00:00 2004-10-31 02:00:00
|
|
1099180821 2004-10-31 02:59:59 2004-10-31 02:59:59
|
|
1099184422 2004-10-31 04:00:00 2004-10-31 04:00:00
|
|
1099180821 2004-10-31 02:59:59 2004-10-31 02:59:59
|
|
362793608 1981-07-01 03:59:59 1981-07-01 03:59:59
|
|
362793610 1981-07-01 04:00:00 1981-07-01 04:00:00
|
|
1230768022 2009-01-01 02:59:59 2009-01-01 02:59:59
|
|
1230768024 2009-01-01 03:00:00 2009-01-01 03:00:00
|
|
drop table t1;
|
|
create table t1 (ts timestamp);
|
|
insert into t1 values (19730101235900), (20040101235900);
|
|
select * from t1;
|
|
ts
|
|
1973-01-01 23:59:00
|
|
2004-01-01 23:59:00
|
|
drop table t1;
|
|
SELECT FROM_UNIXTIME(1230768022), FROM_UNIXTIME(1230768023), FROM_UNIXTIME(1230768024);
|
|
FROM_UNIXTIME(1230768022) FROM_UNIXTIME(1230768023) FROM_UNIXTIME(1230768024)
|
|
2009-01-01 02:59:59 2009-01-01 02:59:59 2009-01-01 03:00:00
|