MySQL datetime默认时间与间隔

loo*_*oop 3 mysql sql datetime

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

我尝试过类似的东西:

CREATE TABLE `table1` (
    `date` DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE)
);  
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.

Dav*_*ele 5

我不认为你能做到这一点.

MySQL的文件指出:

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


Inc*_*nca 5

但是,您可以使用insert-trigger来完成此操作.将"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;
Run Code Online (Sandbox Code Playgroud)