时区转换时注意夏令时的影响

来源:互联网 发布:ai软件如何画图 编辑:程序博客网 时间:2024/05/18 17:04
mysql> select @@time_zone;+-------------+| @@time_zone |+-------------+| SYSTEM      |+-------------+mysql> select takeoff_time, last_send_notice_date, hide_date from matchedVideo where id = 3072;+---------------------+-----------------------+---------------------+| takeoff_time        | last_send_notice_date | hide_date           |+---------------------+-----------------------+---------------------+| 2012-11-10 00:00:00 |   2012-10-29 03:25:53 | 2012-10-24 11:57:41 |+---------------------+-----------------------+---------------------+1 row in set (0.01 sec)mysql> set time_zone = '-0:00';Query OK, 0 rows affected (0.00 sec)mysql> select takeoff_time, last_send_notice_date, hide_date from matchedVideo where id = 3072;+---------------------+-----------------------+---------------------+| takeoff_time        | last_send_notice_date | hide_date           |+---------------------+-----------------------+---------------------+| 2012-11-10 08:00:00 |   2012-10-29 10:25:53 | 2012-10-24 18:57:41 |+---------------------+-----------------------+---------------------+1 row in set (0.00 sec)mysql> set time_zone = '-7:00';Query OK, 0 rows affected (0.00 sec)mysql> select takeoff_time, last_send_notice_date, hide_date from matchedVideo where id = 3072;+---------------------+-----------------------+---------------------+| takeoff_time        | last_send_notice_date | hide_date           |+---------------------+-----------------------+---------------------+| 2012-11-10 01:00:00 |   2012-10-29 03:25:53 | 2012-10-24 11:57:41 |+---------------------+-----------------------+---------------------+1 row in set (0.01 sec)

第一条sql是没有强制设置过时区信息时执行的,按照系统所在时区进行查询;第二条执行前设置时区为0时,takeoff_time增加了8个小时,而last_send_notice_date和hide_date都只增加了7个小时;同样,第三条sql执行前我们设置为-7时区时,takeoff_time增加了1个小时,而last_send_notice_date和hide_date都和第一条sql执行出的结果一致

为什么会发生这样的事情呢?

登录机器查看时区

root@aaa:~# dateTue Oct 30 22:56:25 PDT 2012

发现PDT,PDT全称是Pacific Daylight Time(太平洋夏季时间)

通过百度百科可以了解到:
PDT转换成北京时间方法  PDT从每年3月的第二个星期日到11月的第一个星期日期间和北京时间15小时,其余月份和北京时间差16小时 。也就是说每年3月的第二个星期日到11月的第一个星期日期间处于-7时区,其余月份处于-8时区。由此可以知道为什么上面三个sql会有这样的区别!
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 尿不尽刺痛带血怎么办 狗狗拉肚子拉血怎么办 肾血肿怎么办才吸收快 体检尿蛋白高3怎么办 肾炎会引起脸肿怎么办 12小孩尿蛋白3是怎么办 肝癌介入手术后肝功能不好怎么办 屁多且臭便秘怎么办 肝癌术1年后复发怎么办 怀孕便秘怎么办或大便太干拉不出 肠鸣便秘怎么办多尿 奥司他韦过量怎么办 憋的时间长尿痛怎么办 手过敏了怎么办最简单 肾结石不痛但是有血尿怎么办 儿童医院血液科挂不到号怎么办 搬完重物手抖怎么办 弯腰搬重物腰疼怎么办 搬了重物后腰疼怎么办 例假不走公务员体检血尿怎么办 憋尿久了尿不出来怎么办 憋尿引起的总有尿意怎么办 如果孕妇憋尿了怎么办 孕妇憋尿半个月怎么办 尿憋久了排空后膀胱疼怎么办 胸疼肚子疼不规则流血怎么办 上小便下面会痛怎么办 两岁宝贝憋尿怎么办 打激素脸胖了怎么办 医生写的病历看不懂怎么办 怀孕尿蛋白3个加怎么办 两周岁宝宝牙齿坏掉怎么办 前列缐炎引起尿血怎么办 牙齿牙根长在神经里怎么办 牙齿杀完神经牙根发炎怎么办 牙齿有大洞好疼怎么办 大门牙有蛀牙了怎么办 大门牙蛀牙黑了怎么办 大门牙蛀牙有洞怎么办 大门牙的缝蛀了怎么办 最里面的牙烂了怎么办