MySQL Server Time Zone Support +---------------------+---------------------+ | time1 | time2 | +---------------------+---------------------+ | 2007-03-11 01:00:00 | 2007-03-11 01:00:00 | +---------------------+---------------------+ Leap second values are returned with a time part that ends with  :59:59 . This means that a function such as  NOW()  can return the same value for two or three consecutive seconds during the leap second. It remains true that literal temporal values having a time part that ends with  :59:60  or  :59:61  are considered invalid. If it is necessary to search for  TIMESTAMP  values one second before the leap second, anomalous results may be obtained if you use a comparison with  ’ YYYY-MM-DD hh:mm:ss ’  values. The following example demonstrates this. It changes the session time zone to UTC so there is no difference between internal TIMESTAMP  values (which are in UTC) and displayed values (which have time zone correction applied). Time Zone Leap Second Support 1004 mysql>  CREATE TABLE t1 ( a INT, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (ts) ); Query OK, 0 rows affected (0.01 sec) mysql>  -- change to UTC mysql>  SET time_zone = ’+00:00’; Query OK, 0 rows affected (0.00 sec) mysql>  -- Simulate NOW() = ’2008-12-31 23:59:59’ mysql>  SET timestamp = 1230767999; Query OK, 0 rows affected (0.00 sec) mysql>  INSERT INTO t1 (a) VALUES (1); Query OK, 1 row affected (0.00 sec) mysql>  -- Simulate NOW() = ’2008-12-31 23:59:60’ mysql>  SET timestamp = 1230768000; Query OK, 0 rows affected (0.00 sec) mysql>  INSERT INTO t1 (a) VALUES (2); Query OK, 1 row affected (0.00 sec) mysql>  -- values differ internally but display the same mysql>  SELECT a, ts, UNIX_TIMESTAMP(ts) FROM t1; +------+---------------------+--------------------+ | a | ts | UNIX_TIMESTAMP(ts) | +------+---------------------+--------------------+ | 1 | 2008-12-31 23:59:59 | 1230767999 | | 2 | 2008-12-31 23:59:59 | 1230768000 | +------+---------------------+--------------------+ 2 rows in set (0.00 sec) mysql>  -- only the non-leap value matches mysql>  SELECT * FROM t1 WHERE ts = ’2008-12-31 23:59:59’; +------+---------------------+ | a | ts | +------+---------------------+ | 1 | 2008-12-31 23:59:59 | +------+---------------------+ 1 row in set (0.00 sec) mysql>  -- the leap value with seconds=60 is invalid mysql>  SELECT * FROM t1 WHERE ts = ’2008-12-31 23:59:60’;