我的表定义如下:
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());
答案 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))