无法在mysql中将纪元时间转换为标准时间

7rfyedvj  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(119)

我无法在MySQL中将以下纪元时间'-28800000'转换为标准时间。我使用此online_epoch_converter检查该值,并得到以下结果:
GMT:1969年2月1日,星期六,下午4:00:00
您所在的时区:1969年2月2日,星期日,12:00:00 AM GMT+08:00
我检查了一下,发现mysql中的有效范围是从1970到2038。
我检查了mysql的时区设置,并返回了一个值'SYSTEM'。
然后我检查了系统时区,这是新加坡标准时间。
有人能帮忙吗?非常感谢!
编辑日期:
我的表中有一些其他记录可以完美地返回所需的转换值。所以我正在检查可以消除问题但也可以保持运行良好的选项。
我试了三个脚本,如下所示:
a. FROM_UNIXTIME((SELECT UNIX_TIMESTAMP(DATE_SUB('1969 -12-31 16:00:00',INTERVAL 1 SECOND))+(-28800000/1000)),'%Y-%m-%d %H:%i:%s'

  • this返回NULL

B. DATE_FORMAT(FROM_UNIXTIME((SELECT UNIX_TIMESTAMP(DATE_SUB('1969 -12-31 16:00:00',INTERVAL 1 SECOND))+(-28800000/1000)),'%Y-%m-%d %H:%i:% s'),'%Y-%m-%dT% TZ')

  • this返回NULL

c.DATE_FORMAT(DATE_ADD('1970 -01- 01',INTERVAL -28800000/1000 SECOND),'%Y-%m-%dT% TZ')

  • 此返回1969-12- 31 T16:00:00 Z
ycl3bljg

ycl3bljg1#

看起来你的时间戳是以秒为单位的,所以不需要除以1000。

select DATE_ADD('1970-01-01', INTERVAL -28800000 SECOND);

结果:

`1969-02-01 16:00:00`

您可以使用DATE_FORMAT()将其转换为本地时间

相关问题