无法将unix时间戳插入表的时间戳字段

时间:2015-04-06 07:48:25

标签: mysql

我的表定义如下:

CREATE TABLE tt (
  name varchar(255) DEFAULT NULL,
  date timestamp NULL DEFAULT NULL
)
ENGINE = INNODB
CHARACTER SET utf8
COLLATE utf8_general_ci;

现在我正在尝试插入记录:

INSERT INTO tt (name, date) VALUES('some', UNIX_TIMESTAMP(now()));

并收到以下错误:

Incorrect datetime value: '1428306271' for column 'date' at row 1

怎么可能?

修改
此选项也会产生错误:

INSERT INTO tt (name, date) VALUES('some', UNIX_TIMESTAMP());

3 个答案:

答案 0 :(得分:1)

正确的语法是

INSERT INTO tt (name, date) VALUES('some', now());

date timestamp NULL DEFAULT NULL会接受值为 yyyy-mm-dd H:i:s

答案 1 :(得分:0)

如果您希望在2015-04-06 13:24:42格式的字段中显示当前日期时间,则不应要求将此字段添加到查询中,因为它会自动将此格式的当前日期时间值更新为数据库

所以你的查询将是:INSERT INTO tt(name)VALUES(' some');

假设当前日期时间是2015-04-06 13:24:42所以这将自动更新到你的日期字段ind数据库。

按照UTC时间。

答案 2 :(得分:0)

TO_TIMESTAMP是将epoch转换为timestamp

的功能
INSERT INTO mytable (name, time) VALUES ('Hello', TO_TIMESTAMP(123))