打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于数据库datetime、timestamp的一个问题记录

timestamp存在binlog里面的是uniox时间戳 利用binlog恢复数据的时候会恢复成时间戳。。无法对应到具体的年月日

timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;

datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’

CURRENT_TIMESTAMP为什么能用于datetime类型
在mysql 5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型,
5.6版本之后,CURRENT_TIMESTAMP也能用于datetime类型了
select version()查数据库版本

所以5.6以后的版本也可以用下面的建表语句:

`CREATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`UPDATE_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

insert into tablename 的时候 1.CREATE_TIME字段要加上,值value对应的不能为空 2.CREATE_TIME字段不加,则数据库默认会用CURRENT_TIMESTAMP(当前时间);同理update也一样,要么无视这个字段,要么设置这个字段,否则会出现不期望的效果

所以,datetime要更实用一点(除了占用的存储空间,DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节)

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
教您如何MySql查询时间段
Mysql中timestamp用法详解
mysql TIMESTAMP 不能为NULL
mysql 报错 异常 exception
MySQL数据库~~~~初识、基础数据类型
oracle 时间字段自动更新问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服