2015-03-02 68 views
3

注:现在的问题是关于日期的类型,而不是日期时间或时间戳如何将DATE(不是DATETIME/TIMESTAMP)列的默认值设置为当前日期?

如何改变日期数据类型的列默认使用当前的日期? 我看到很多日期时间的例子,但不是日期。我曾尝试:

ALTER TABLE `accounting` ALTER `accounting_date` SET DEFAULT CURRENT_DATE; 
ALTER TABLE `accounting` CHANGE `accounting_date` `accounting_date` DATE NOT NULL DEFAULT CURRENT_DATE; 

我也试图与CURDATE(),NOW(),CURRENT_DATE()...

+0

重复http://stackoverflow.com/questions/5818423/set-now-as-default-value-for-datetime-datatype – DevDonkey 2015-03-02 08:51:28

+0

@ MattHolbrook-公牛这个例子是关于TIMESTAMP(日期时间)列的。我的问题是关于DATE栏 – 2015-03-02 09:00:56

+0

所以这一个呢? http://stackoverflow.com/questions/168736/how-do-you-set-a-default-value-for-a-mysql-datetime-column – DevDonkey 2015-03-02 09:04:51

回答

4

在mysql的 '日期' 数据类型,也许你不能设置默认值。您需要将类型更改为时间戳或日期时间。

你可能看看这个类似的问题。

Invalid default value for 'Date'

编辑:

在5.6.5版本中,可以设置日期时间列的默认值,甚至使一列时,该行被更新,将更新。类型定义:

CREATE TABLE foo (
    `creation_time`  DATETIME DEFAULT CURRENT_TIMESTAMP, 
    `modification_time` DATETIME ON UPDATE CURRENT_TIMESTAMP 
) 

参考:http://optimize-this.blogspot.com/2012/04/datetime-default-now-finally-available.html

相关问题