MySQL DATE字段,默认为CURDATE()。不是DATETIME

时间:2016-10-01 16:01:25

标签: mysql date default

可以将MySQL 5.7中DATE( NOT DATETIME )列的默认值设置为当前日期吗?
我试试这个(由Workbench生成):

ALTER TABLE `db`.`table` CHANGE COLUMN `column` `column` DATE NOT NULL DEFAULT CURDATE() ;

但不适合我。 (表中没有数据)

2 个答案:

答案 0 :(得分:8)

不,你不能。 documentation非常明确:

  

这意味着,例如,您无法设置日期的默认值   column是函数的值,例如NOW()或CURRENT_DATE。   例外情况是您可以将CURRENT_TIMESTAMP指定为默认值   对于TIMESTAMP和DATETIME列。请参见第12.3.5节“自动   TIMESTAMP和DATETIME的初始化和更新“。

您可以执行以下操作之一:

  • 设置一个包含DATETIME默认值的列。创建将日期提取为单独列的视图。
  • 创建insert触发器以设置date列。

答案 1 :(得分:0)

如果您有另一列具有例如默认值为NOW()的datetime字段,则有一种方法可以执行此操作。 See this post: