共计 640 个字符,预计需要花费 2 分钟才能阅读完成。
这篇文章给大家分享的是有关 MYSQL 中 timestamp 取值范围是什么的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
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 取值范围是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!