Mysql 如何将日期列默认为今天';日期

Mysql 如何将日期列默认为今天';日期,mysql,sql,Mysql,Sql,我需要一个日期列来默认为当前而不是时间戳 我需要它像2014-11-27一样 CHANGE COLUMN `date` `date` DATE NULL DEFAULT TODAY() mysql不接受上述内容,因为TODAY()未知。DATE()、DATE、CURDATE()和CURDATE也不起作用您需要使用触发器在这种情况下,DEFAULT子句只能处理常量值: DELIMITER // CREATE TRIGGER today BEFORE INSERT ON table FOR EA

我需要一个日期列来默认为当前而不是时间戳

我需要它像2014-11-27一样

CHANGE COLUMN `date` `date` DATE NULL DEFAULT TODAY() 

mysql不接受上述内容,因为TODAY()未知。DATE()、DATE、CURDATE()和CURDATE也不起作用

您需要使用触发器在这种情况下,DEFAULT子句只能处理常量值:

DELIMITER //
CREATE TRIGGER today BEFORE INSERT ON table
FOR EACH ROW
BEGIN
  IF NEW.`date` IS NULL THEN
    SET NEW.`date` = NOW(); 
  END IF;
END;
//
DELIMITER ;

默认值必须是常量,不能是函数或表达式。这一点在报告中有所说明


当列的类型为
TIMESTAMP
时,只有一个例外。如果适合您的设计(也请阅读它是怎样的),请将列的类型更改为
TIMESTAMP
,或者使用触发器解决方案。

这是您的情况吗?向上投票只是因为其他
n
问题有很多带有时间戳的答案(没有人问),并且答案错误,目前看来,这似乎是唯一有用的选择(即使其他地方已经回答了很多次)。