MySQL数据库的datetime与timestamp-阿里云开发者社区

开发者社区> 数据库> 正文

MySQL数据库的datetime与timestamp

简介:

MySQL数据库中有datetime与timestamp两种日期时间型数据类型,其中timestamp可以用timestamp(n)来表示年月日时分秒的取值精度,如果n=14则完整匹配于datetime的精度,那为什么还需要datetime这种类型呢?我做过试验,timestamp可以跟日期函数和时间函数直接比较和判断,比如timestamp1<dateadd(cur_date(), interval 1 month)是完全成立的。timestamp(14)型数据列被修改为date时会被取整(时分秒丢失),反之会添零。而与datetime型则没有任何问题,完全兼容,没搞懂datetime的存在意义?!原来用惯了datetime,因为sql server的原因,可是MySQL数据库不支持datetime列的默认值的函数设置,如常用的now()。据网络上很多网友说,MySQL的默认值不允许设为函数。SQL server用now, Oracle用sysdate,可是MySQL用datetime只要用触发器了,为了常用的createdate列需要维护一堆触发器,真不合适。用timestamp呢,它会自动添加默认值为系统当前时间,当然只对表里的第一个timestamp列,不过大多数时候够了。


本文转自 dannyy1026 51CTO博客,原文链接:

http://blog.51cto.com/dannyyuan/104393

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章