データベース(MySQL)に日時をTimeStampで記録すると8時間ほど遅れた時間が記録されてしまいます。MySQLサーバーのタイムゾーンを変更しようにも権限がなく、皆様はどのように対応されていますでしょうか。
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
ご指摘のとおりで、フレームワーク側のタイムゾーンの設定が漏れており、UTCになっていました。
お恥ずかしい限り。解決いたしました。ありがとうございます。