簡體   English   中英

意外的MySQL DATETIME行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM