首页 > 解决方案 > 以秒为单位截断所有查询的日期时间,但将毫秒存储在 Postgres 中

问题描述

我试图找到一种方法来告诉 Postgres 截断所有日期时间列,以便它们按秒显示和过滤(忽略毫秒)。

我知道

date_trunc('second', my_date_field)

方法,但不想对提到它们的每个 select 和 where 子句中的所有日期时间字段都这样做。where 子句中的日期还需要以秒为粒度捕获记录。

理想情况下,我会避免在存储数据时从数据中剥离毫秒。但话又说回来,也许这是最好的方法。我真的很想避免这种数据迁移。

我可以想象 Postgres 有这样的运行时配置:

SET DATE_TRUNC 'seconds';

类似于时区的配置方式,但当然这不起作用,我无法在文档中找到任何其他内容。我需要编写自己的 Postgres 扩展吗?有人已经写过这个了吗?

标签: postgresqldatetime

解决方案


推荐阅读