首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中定义默认日期值,类似于timestamp

问在MySQL中定义默认日期值,类似于timestamp
EN

Stack Overflow用户
提问于 2009-07-29 09:16:41
回答 1查看 6K关注 0票数 2

我使用的是MySQL (没有人是完美的) 4.1版,我习惯于这样定义一些时间戳列:

代码语言:javascript
复制
ALTER TABLE foo ADD creation TIMESTAMP DEFAULT NOW() ;

我想做完全相同的事情,除了日期字段。原因是我不需要时间戳精度,而且因为MySQL中不存在函数索引,所以我无法快速访问具有给定日期的行(无论是哪一天的时间)。因此,我尝试了以下方法,但就是不起作用:

代码语言:javascript
复制
ALTER TABLE foo ADD creation_date DATE DEFAULT CURDATE() ;
ERROR 1067 (42000): Invalid default value for 'creation_date'

甚至是

代码语言:javascript
复制
ALTER TABLE foo ADD creation_date DATE DEFAULT DATE(NOW()) ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(now())' at line 1

这也不起作用。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-29 09:29:27

在MySQL中,默认值必须是常量。不允许使用函数或表达式。

例外情况是TIMESTAMP类型,对于该类型,CURRENT_TIMESTAMP是一个有效的非常量默认值。

See 4.1 manual: Data Type Default Values

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1198977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档