MYSQL中时间戳的取值范围是多少?

分类:编程技术 时间:2024-02-20 15:43 浏览:0 评论:0
0
本文将与大家分享有关MYSQL中时间戳的取值范围的内容。小编觉得还是比较实用的,所以分享给大家,作为参考。下面就跟随小编来看看吧。

TIMESTAMP 和 DATETIME 的取值范围不同,存储方式也不同。
TIMESTAMP 占用 4 个字节,取值范围为 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) 来自对偶;
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中时间戳的取值范围是多少》这篇文章分享到这里。希望以上内容能够给大家带来一些帮助,让大家学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > MYSQL中时间戳的取值范围是多少?

用户评论