timezone3.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # Test of handling time zone with leap seconds.
  3. #
  4. # This test should be run with TZ=:$MYSQL_TEST_DIR/std_data/Moscow_leap
  5. # This implies that this test should be run only on systems that interpret 
  6. # characters after colon in TZ variable as path to zoneinfo file.
  7. #
  8. # Check that we have successfully set time zone with leap seconds.
  9. --require r/have_moscow_leap_timezone.require
  10. disable_query_log;
  11. select from_unixtime(1072904422);
  12. enable_query_log;
  13. # Initial clean-up
  14. --disable_warnings
  15. drop table if exists t1;
  16. --enable_warnings
  17. #
  18. # Let us check behavior of conversion from broken-down representation
  19. # to time_t representation, for normal, non-existent and ambigious dates
  20. # (This check is similar to the one in timezone2.test in 4.1)
  21. #
  22. create table t1 (i int, c varchar(20));
  23. # Normal value without DST
  24. insert into t1 values
  25.   (unix_timestamp("2004-01-01 00:00:00"), "2004-01-01 00:00:00");
  26. # Values around and in spring time-gap
  27. insert into t1 values
  28.   (unix_timestamp("2004-03-28 01:59:59"), "2004-03-28 01:59:59"),
  29.   (unix_timestamp("2004-03-28 02:30:00"), "2004-03-28 02:30:00"),
  30.   (unix_timestamp("2004-03-28 03:00:00"), "2004-03-28 03:00:00");
  31. # Normal value with DST
  32. insert into t1 values
  33.   (unix_timestamp('2004-05-01 00:00:00'),'2004-05-01 00:00:00');
  34. # Ambiguos values (also check for determenism)
  35. insert into t1 values
  36.   (unix_timestamp('2004-10-31 01:00:00'),'2004-10-31 01:00:00'),
  37.   (unix_timestamp('2004-10-31 02:00:00'),'2004-10-31 02:00:00'),
  38.   (unix_timestamp('2004-10-31 02:59:59'),'2004-10-31 02:59:59'),
  39.   (unix_timestamp('2004-10-31 04:00:00'),'2004-10-31 04:00:00'),
  40.   (unix_timestamp('2004-10-31 02:59:59'),'2004-10-31 02:59:59');
  41. # Test of leap
  42. insert into t1 values
  43.   (unix_timestamp('1981-07-01 03:59:59'),'1981-07-01 03:59:59'),
  44.   (unix_timestamp('1981-07-01 04:00:00'),'1981-07-01 04:00:00');
  45. select i, from_unixtime(i), c from t1;
  46. drop table t1;
  47. #
  48. # Test for bug #6387 "Queried timestamp values do not match the 
  49. # inserted". my_gmt_sec() function was not working properly if we
  50. # had time zone with leap seconds 
  51. #
  52. create table t1 (ts timestamp);
  53. insert into t1 values (19730101235900), (20040101235900);
  54. select * from t1;
  55. drop table t1;
  56. # End of 4.1 tests