[英]Unexpected MySQL DATETIME behavior
當我嘗試從Java應用程序向表中插入值時,我看到了MySQL DATETIME出現的意外行為。 我已經閱讀了很多有關DATETIME的StackOverflow問題和答案,但這似乎是一個完全不同的問題。
我的Java應用程序使用MyBatis和此DateTimeTypeHandler插入joda DateTime值2015-03-04T22:30:59.922Z
。 (我還修改了上面的代碼以使用setTimestamp(int,Timestamp,Calendar)方法,但沒有注意到結果的不同)。
我看到插入表中的值是2015-03-04 14:30:59.922
。 我讀到MySQL DATETIME使用服務器默認時區。 我居住在PDT時區,因此我希望該值是2015-03-04 15:30:59.922
(即15:30而不是14:30)。
令人驚訝的是,MySQL中似乎沒有任何跡象表明PDT時區。 那么,為什么表中的日期時間值是2015-03-04 14:30:59.922?
mysql> select @@global.time_zone; +--------------------+ | @@global.time_zone | +--------------------+ | UTC | +--------------------+ 1 row in set (0.06 sec)
mysql> select @@session.time_zone; +---------------------+ | @@session.time_zone | +---------------------+ | UTC | +---------------------+ 1 row in set (0.07 sec)
mysql> SELECT @@system_time_zone; +--------------------+ | @@system_time_zone | +--------------------+ | UTC | +--------------------+ 1 row in set (0.07 sec)
2015年3月4日為標准時間,因此偏移時間為-8小時:
UTC (Time Zone) Wednesday, March 4, 2015 at 10:30:00 PM UTC
Los Angeles (U.S.A. - California) Wednesday, March 4, 2015 at 2:30:00 PM PST UTC-8 hours
今天(2015年5月28日)是夏令時,因此偏移時間是-7小時:
UTC (Time Zone) Thursday, May 28, 2015 at 10:30:00 PM UTC
Los Angeles (U.S.A. - California) Thursday, May 28, 2015 at 3:30:00 PM PDT UTC-7 hours
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.