通知
すべてクリア

データベースのタイムゾーン

投稿: 2
質問投稿者
コミュニティ参加日: 2週間前

データベース(MySQL)に日時をTimeStampで記録すると8時間ほど遅れた時間が記録されてしまいます。MySQLサーバーのタイムゾーンを変更しようにも権限がなく、皆様はどのように対応されていますでしょうか。

2件の返信
投稿: 23
 .
コミュニティ参加日: 6か月前

8時間じゃなくて9時間遅れですかね? であればJSTとUTCの違いでしょう。
なんですが、MySQLサーバーの違いでしょうか、再現できませんでした。

SHOW GLOBAL VARIABLES LIKE '%time_zone';

としたら

Variable_name        Value
system_time_zone  JST
time_zone            SYSTEM

となったので、システムはJSTで、MySQLはSYSTEMを使うようになってました。(問題なさそう)
次に、

CREATE TABLE DATE_TEST (item_timestamp TIMESTAMP(3));
INSERT INTO DATE_TEST VALUES(CURRENT_TIMESTAMP);
select * from DATE_TEST;

としてやると

item_timestamp
2025-03-01 07:59:14.000

となっていて、期待通りのJSTでした。(今は3/1の朝8時頃です)

insertをするときの時刻がUTCになってるんじゃないかなと想像したのですが、いかがでしょうか。

参考URL
https://www.terasol.co.jp/linux/6205
https://qiita.com/kazuki43zoo/items/c94c22ff7ae620c461ee

返信
投稿: 2
質問投稿者
コミュニティ参加日: 2週間前

ご指摘のとおりで、フレームワーク側のタイムゾーンの設定が漏れており、UTCになっていました。
お恥ずかしい限り。解決いたしました。ありがとうございます。

返信