MySQL:如何保存时间戳UTC而又不从MySQL时区更改它?

此问题与将时间戳存储到日期时间中的问题不同。 我有时间戳记,所以没有tz信息。 我也不能改变我的数据库结构 我使用的是雄辩的语言,但值得一提的是,手动执行MySQL查询插入操作也会发生此问题

我在做什么

我的API收到此时间戳:

1572864543

Assuming that this timestamp is in seconds:
GMT: Monday 4 November 2019 10:49:03
Your time zone: lunedì 4 novembre 2019 11:49:03 GMT+01:00

保存到数据库时,我不知道用户的MySQL时区配置是什么,但是我需要MySQL绝对不要更改我的时间戳。

我确定MySQL列是timestamp

我知道在Laravel中存储时间戳需要在类似sql的字符串中进行转换

我曾经尝试过

Carbon::createFromTimestamp($claims["date"])->toDateTimeString();

问题

它可以工作,但是MySQL获取我的字符串,应用时区设置,将其设置为UTC,并在内部保存新时间戳。

所以检索

UNIX_TIMESTAMP(received_ts)

我得到了错误的结果。

问题

我绝对需要将时间戳保留在数据库中。如何保存时间戳而不进行更改?

混合信息

原因是我的产品安装在不可预测的服务器时区中;我也不能强迫用户将db时区更改为UTC。

实际上,我的应用的时区已经通过laravel config/app.php文件强制为'UTC'

'timezone' => 'UTC',
a191387072 回答:MySQL:如何保存时间戳UTC而又不从MySQL时区更改它?

我决定在我的MySQL连接配置选项中强制使用utc。

MySQL现在不会更改任何时间戳

本文链接:https://www.f2er.com/3167046.html

大家都在问