PostgreSQL:为什么“Time”类型分配的大小与“Timestamp”相同?

qcuzuvrc  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(148)

阅读关于Postgresql数据类型,特别是关于"Date/Time"类型,我注意到一些奇怪的事情(至少对我来说)。

**“Time”数据类型与“Timestamp”类型分配相同的存储大小(8字节 )。虽然“Time”只负责存储时间,而“Timestamp”同时存储DateTime,但它们是时间的超集。

此外,这两种类型具有完全相同的精度 (1微秒/ 14位),这让我质疑为什么它们都分配8个字节,而不像“Date”类型分配4个字节?
x1c 0d1x的数据
是内在的影响还是什么?

slwdgvem

slwdgvem1#

一天有8640000000微秒,这比232微秒多,所以结果不能用32位存储,次佳选择是64位,即8字节。
相比之下,date类型涵盖了公元前4713年到公元5874897年,即5879611年。这大约是2147483820天,小于232,因此可以存储在32位整数中。(事实上,它小于231,这可能会使各种事情稍微简单一些。)

相关问题