加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL中timestamp取值范围是哪个

发布时间:2022-01-11 03:45:56 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关MYSQL中timestamp取值范围是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 TIMESTAMP和DATETIME的取值范围不同同时存储不同, TIMESTAMP占四个字节取值范围为 1970-01-01 00:00:00 到 2038-
     这篇文章给大家分享的是有关MYSQL中timestamp取值范围是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
 
     TIMESTAMP和DATETIME的取值范围不同同时存储不同,
     TIMESTAMP占四个字节取值范围为 1970-01-01 00:00:00 到 2038-01-19  3:14:07
那么为什么是这个取值范围呢 4个字节明显不够存储日期格式。4字节为2^32次方
那么我们可以分析timestamp实际是C语言的一个INT 类型带符号位的。
用ORACLE的格式算出来为
SQL> select to_date('1970-01-01 00:00:00','yyyy-mm-dd hh34:mi:ss')+(power(2,31)-1)/(60*60*24) from dual;
TO_DATE('1970-01-0100:00:00','
------------------------------
2038/1/19 3:14:07
 
2^31是因为带了符号位少了一位。所以是31次方,而减一因为从0开始而不是1,比如2的8次方为256但是实际的数值是0~255(FF)
可以想到TIMESTAMP实际是一个相加的过程 他存储在内部格式是一个表示秒的 int类型 带符号位
 
感谢各位的阅读!关于“MYSQL中timestamp取值范围是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!