【发布时间】:2011-08-14 16:12:45
【问题描述】:
我在表用户中有两列,即registerDate and lastVisitDate,它们由日期时间数据类型组成。我想做以下事情。
- 将 registerDate 默认值设置为 MySQL NOW()
- 将 lastVisitDate 默认值设置为
0000-00-00 00:00:00,而不是默认使用的 null。
由于表已经存在并且已有记录,我想使用修改表。我试过使用下面的两段代码,但都不起作用。
ALTER TABLE users MODIFY registerDate datetime DEFAULT NOW()
ALTER TABLE users MODIFY registerDate datetime DEFAULT CURRENT_TIMESTAMP;
它给了我错误:ERROR 1067 (42000): Invalid default value for 'registerDate'
我可以在 MySQL 中将默认日期时间值设置为 NOW() 吗?
【问题讨论】:
-
ALTER TABLE users MODIFY dateTime timestamp default CURRENT_TIMESTAMP。您在这两项工作中都没有定义data type字段 -
因为 MySQL 5.6
DATE应该使用默认值NOW() -
根据这个 mysql 5.6 文档:dev.mysql.com/doc/refman/5.6/en/data-type-defaults.html,您可以默认使用 CURRENT_TIMESTAMP()。
-
我将如何实现 CURRENT_TIMESTAMP + 1 DAY
标签: mysql sql datetime mysql-error-1067