Mysql 5.5 DATETIME类型的字段设置默认值为NOW()的方法
高洛峰
高洛峰 2017-04-17 12:01:34
[MySQL讨论组]

今天写数据库脚本,创建数据库时,有一个字段是datetime类型的,想要设置默认时间为当前时间,于是有了如下代码

`registerDate` datetime NOT NULL DEFAULT NOW() COMMENT '注册时间'

执行之后报错
Error Code: 1067. Invalid default value for 'registerDate'

然后改成如下

`registerDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'

还是报相同的错误

上网查了很多,改成timestamp类型就可以执行了

`registerDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'

但是,我想要的是datetime类型的,如何设置默认值为当前时间????

PS:在mysql 5.6中,前两种写法都可以执行的···求大神帮忙解答啊

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
黄舟

一直都在用timestamp 还真没注意到有你说的问题,刚刚试了下应该是5.5还不支持这样,datetime的默认值可以这么配REGISTERDATE DATETIME NOT NULL DEFAULT '1999-01-01 01:01:01',用当前时间的话试试加个TRIGGER set

迷茫

MySQL 5.6,亲测可用!

高洛峰

这个是因为版本太低了,CURRENT_TIMESTAMP 在 5.6+ 版本才能赋值 DEFAULT 到 DATETIME 类型的数据中~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号