MySQL datetime默认时间与间隔

时间:2011-08-11 10:02:08

标签: mysql sql datetime

是否可以使用NOW(),10分钟添加到默认时间?

我尝试过这样的事情:

CREATE TABLE `table1` (
    `date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);  

然而,它不起作用。

2 个答案:

答案 0 :(得分:5)

我认为你不能这样做。

MySQL Documentation表示:

  

数据类型规范中的DEFAULT值子句表示a   列的默认值。除了一个例外,默认值必须   是一个常数;它不能是一个功能或表达。这意味着,   例如,您不能将日期列的默认值设置为   NOW()或CURRENT_DATE等函数的值。例外   是你可以指定CURRENT_TIMESTAMP作为a的默认值   TIMESTAMP专栏

答案 1 :(得分:5)

然而,您可以使用插入触发器来完成此操作。将“date”列的默认值设置为null,然后使用

CREATE TRIGGER settime
BEFORE INSERT on table1
FOR EACH ROW BEGIN
    IF new.`date` is null THEN
        SET new.`date` = DATE_ADD(NOW(), INTERVAL 10 MINUTE);
    END IF;
END;