首页 > 解决方案 > 在 MySQL 中将 BigInt 转换为时间戳

问题描述

我有一个表,在这个表中我有一个当前存储类型值的列BigInt,我想更改此列以包含“时间戳”值。

我怎样才能做到这一点。我努力了:

ALTER TABLE t
MODIFY c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

我得到:

#1292 - Incorrect datetime value: '1524120113' for column 'created_temp' at row 1

ALTER TABLE share ADD created_temp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
UPDATE share SET created_temp = UNIX_TIMESTAMP(created);

我得到:#1292 - Incorrect datetime value: '1524120113'

的内容created是使用创建的UNIX_TIMESTAMP()

标签: mysql

解决方案


例如,假设您有时间戳1376750476349并且想要将其转换为日期时间。如果您的时间戳在seconds.

select FROM_UNIXTIME(timestamp_value);

但是,对于上述函数的许多用户来说,这是一个经常出现的问题,如果您的时间戳记在 中milliseconds,则在使用该函数之前,您必须执行所需的秒数转换。因此,在时间戳以毫秒为单位的情况下,您可以执行以下操作来获取日期时间:

select FROM_UNIXTIME(timestamp_value/1000);

希望这可以帮助。享受!

资源


推荐阅读