gpt4 book ai didi

postgresql - PostgreSQL 中的小日期时间

转载 作者:行者123 更新时间:2023-11-29 12:13:03 25 4
gpt4 key购买 nike

我有一个包含数百万行日期/时间数据的 PostgreSQL 数据库。数据时间范围为2004年至今。时区始终为 UTC。由于我的虚拟主机帐户上的磁盘空间有限,我想尽可能地减小数据库大小。我知道在 Microsoft SQL Server 中有一个 4 字节大小的 SMALLDATETIME 数据类型。

在 Postgres 中是否有等同于 SMALLDATETIME 的东西?

(注意:我看过 Postgres 手册,但所有“日期和时间”都是 8 个字节。4 字节的“日期”数据类型不适合我的需要,因为我需要在几分钟内解决。)

最佳答案

不,没有这样的类型。这对于一些用例来说会很好,但它不受支持。

作为妥协,您可以做的是存储自偏移纪元以来的秒数:

extract(epoch from mydate) - extract(epoch from TIMESTAMP '2004-01-01 00:00:00')

integer 列中,然后即时重建日期。这会影响性能,更重要的是,会降低可读性,但它会起作用。

SELECT to_timestamp(mydatesecondssince2004 + extract(epoch from TIMESTAMP '2004-01-01 00:00:00')) FROM mytable

或者,您可能是决定添加“smalldate”和“smalltimestamp”类型的人; PostgreSQL 是开源的,这意味着人们需要做他们希望发生的事情。

关于postgresql - PostgreSQL 中的小日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com