MySQL datetime 和 timestamp 的区别
2024-08-24 23:41:46
【转载】:MySQL中有关TIMESTAMP和DATETIME的总结
1. datetime 和 timestamp 的相同点
两者都可以用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。
2. datetime 和 timestamp 的不同点
2.1 存储方式
对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。
而对于DATETIME,不做任何改变,基本上是原样输入和输出。
2.2 存储范围
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'。
总结:TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP更为合适。
3. datetime 和 timestamp 的自动初始化和自动更新
默认情况下,数据表会对第一个 timestamp 字段设置为 not null,并在记录更新时自动更新该字段的值为当前时间;
测试:
3.1 设置自动初始化和更新
查看是否开启自动初始化和更新:
show variables like '%explicit_defaults_for_timestamp%';
禁用自动初始化和更新:
1. 将“explicit_defaults_for_timestamp”的值设置为ON。
2. “explicit_defaults_for_timestamp”的值依旧是OFF,也有两种方法可以禁用
1> 用DEFAULT子句该该列指定一个默认值
2> 为该列指定NULL属性。
最新文章
- 搞懂$.each和$(selector).each
- (。・・)ノ~个人java学习随笔记录
- redis配置文件redis.conf说明
- linux的一些小问题
- hadoop 笔记(hbase)
- Show ";Appear Offline"; in Lync
- GATK-BWA-MEM handle GRCh38 alternate contig mappings
- vmware12安装vmtools
- Egret的第一个2048游戏
- CSS禁止用户选择复制
- php调用第三方接口
- html5 css练习 定位布局
- VUE.JS 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法
- FileItem类的常用方法(关于文件上传的)
- day 05 字典,字典嵌套
- the most beautiful media player on the linux platform.
- [WPF]WPF开发方法论
- 从《乱世王者》看腾讯SLG手游如何搭建完整安全服务
- hadoop中的序列化与Writable接口
- Jxl的API概述(转)