mysql datetime与timestamp区别

mysql datetime与timestamp区别datetime:1、与时区无关,存入的是什么值就是什么值,不会根据当前时区进行转换2、从mysql5.6.4中,可以存储小数片段,最多到小数点后6位,显示时格式为yyyy-MM-ddHH:mm:ss[.222222]mysql5.5中,没有小数片段。所以,我再从5.6版本迁移到5.5版本时,因为生成的sql中datetime(6),所以无法导入数据库。3、存储

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

datetime: 

1、保存格式为YYYYMMDDHHMMSS(年月日时分秒)的整数,所以,它与时区无关,存入的是什么值就是什么值,不会根据当前时区进行转换。

2、从mysql 5.6.4中,可以存储小数片段,最多到小数点后6位,显示时格式为 yyyy-MM-dd HH:mm:ss[.222222]

      mysql5.5中,没有小数片段,精确到秒。所以,我再从5.6版本迁移到5.5时,因生成的sql中datetime(6)有小数片段,无法导入。

3、存储范围:从1000-01-01 00:00:00 到’9999-12-31 23:59:59′

4、长度,8个字节,datetime(n),n不是存储长度,而是显示的小数位数,即使小数位数是0,存储是也是存储的6位小数,仅仅显示0位而已;要想显示小数,设置datetime(n),n=3显示小数点后3位,毫秒,n=6显示小数点后6位,微秒。

timestamp:

1、存入的是自1970-01-01午夜(格林尼治标准时间)以来的秒数,它和unix时间戳相同。所以它与时区有关,查询时转为相应的时区时间。比如,存储的是1970-01-01 00:00:00,客户端是北京,那么就加8个时区的小时1970-01-01 08:00:00。

2、有小数片段,至少从5.5就开始有

3、存储范围:'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' 

4、可以当做时间戳使用,在更新时,自动更新,这一列只能由系统自动更新,不能由sql更新,这个在乐观锁时有广泛的应用

6、长度,4字节,因为存储长度的原因,决定了它支持的范围的比datetime的要小

7、显示时,显示日期和时间

datetime和timestamp都可以当作时间戳使用

datetime和timestamp都可以设置默认值,并且在其他列值更新时更新为当前时间,DEFAULT  CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP,这俩子句可以一起使用,顺序无所谓,一起使用的意思是,默认值是当前时间并且在其他列更新值时,此列更新为当前时间。

ALTER TABLE `mytest`.`date_time_test` 
CHANGE COLUMN `col2` `col2` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ;

date

date,时分秒都存储了,但只显示日期。对应Java中的java.sql.Date

datetime与时区无关、timestamp与时区有关

1、查看当前时区,并创建表test_date,一个是timestamp列,一个是datetime列

mysql datetime与timestamp区别

2、插入两条数据,相同的时间。修改时区为0时区(格林尼治时区)后,查看时间,发现timestamp改变了,datetime没变。

mysql datetime与timestamp区别

总结

datetime、timestamp精确度都是秒,datetime与时区无关,存储的范围广(1001-9999),timestamp与时区有关,存储的范围小(1970-2038)。

MySQL :: MySQL 5.7 Reference Manual :: 11.2.2 The DATE, DATETIME, and TIMESTAMP Types

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/215460.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 贴片电阻符号表示_怎样识别贴片电阻的阻值

    贴片电阻符号表示_怎样识别贴片电阻的阻值1、贴片电阻阻值和精度贴片电阻本体颜色为黑色,电阻体上一般标注为白色数字(小型电阻无标识,称无印字贴片电阻),如图4所示。贴片电阻在电路板上的元件序列号(常称位号)为R(如R1、R2等)。贴片电阻的基本参数有标称阻值、额定功率、误差级别、最高电压、温度系数等,但在实际使用中,只需关注标称阻值和额定功率值这两项参数就可以了。主要有三位表示和四位表示两种方法三位表示:前2位数字分别为十位、个位值,称为有效数值,第3位数字是10的X次方,误差值在+-%5。…

  • pycharm怎么关闭科学模式_pycharm关闭科学模式

    pycharm怎么关闭科学模式_pycharm关闭科学模式PyCharm在2017.3版本之后加入了ScientificMode,在科学计算时,可以方便的追踪变量变化等。使用NumPy的时候,系统会提示usescientificmode,但进去后就运行程序的在控制台中,很麻烦,想改回来的话按下面步骤取反即可.有时打开了scientificmode时,但文件中引入了numpy等科学计算包时并没有被自动识别,以scientific…

  • mshtml相关「建议收藏」

    牛人翻译的文章:http://blog.csdn.net/jiangsheng/article/details/3793

  • unit8或double灰度图像的伪彩色显示[通俗易懂]

    unit8或double灰度图像的伪彩色显示[通俗易懂]简单将unit8或double类型灰度图以设定的伪彩色图像显示:  figure,imshow(gray,’Colormap’,jet(255));将灰度图像直接转化为RGB图形:rgb=ind2rgb(gray2ind(im,255),jet(255));如果是unit8数据而不是double类型数据可采用如下伪彩色转换:rgb=label2rgb(gray2ind(…

  • OpenStack SR-IOV

    OpenStack SR-IOV

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号