MySQL:NOW()给我零

For*_*imo 6 mysql datetime timestamp

我有一个表,我想记录每个插入时间的每个订单的时间戳.但是,我得到时间戳的零值.

这是我的架构:

CREATE TABLE IF NOT EXISTS orders(
            order_no VARCHAR(16) NOT NULL,
            volunteer_id VARCHAR(16) NOT NULL,
            date TIMESTAMP DEFAULT NOW(),
            PRIMARY KEY (order_no),
            FOREIGN KEY (volunteer_id) REFERENCES volunteer(id)
            ON UPDATE CASCADE ON DELETE CASCADE)
Run Code Online (Sandbox Code Playgroud)

Fab*_*ian 3

“数据类型规范中的 DEFAULT 值子句指示列的默认值。除了一个例外,默认值必须是常量;它不能是函数或表达式。这意味着,例如,您不能设置日期列的默认值是 NOW() 或 CURRENT_DATE 等函数的值”

来源:http ://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

您必须在插入查询中命名该列并将 Now() 作为值传递。

  • 你遗漏了最有用的部分,不是吗?“例外情况是,您可以指定 CURRENT_TIMESTAMP 作为 TIMESTAMP 列的默认值。请参阅第 10.3.1.1 节“TIMESTAMP 属性”(http://dev.mysql.com/doc/refman/5.1/en/timestamp.html) ”。 (9认同)