如何在 postgresql 中使用 trunc() 函数

How to use trunc() function in postgresql

我对在 postgresql 中使用 trunc() 函数有点困惑。

据我所知,如果我想截断日期,我需要使用posgresql中的date_trunc()函数。

看起来像这样:select date_trunc('month',now())

但是我发现pg_catalog中有一个trunc()函数。如果我像这样使用它:select trunc(now(),'MM')。我会得到相同的结果。这种用法类似于oracle。

我不确定这是否是 postgre 13.3 中的内置函数。

我在互联网上做了一些研究,但我在 pg_catalog 中找不到关于这 2900 多个函数的任何描述。

不,那不是内置的 PostgreSQL 函数。此外,它还引用了 orafce 扩展中的库,该扩展定义了这样的函数。

要验证这一点,请使用 psql 和 运行 \dx 连接到 PostgreSQL 以列出扩展。 orafce应该在其中。要查看扩展提供的对象,运行 \dx+ orafce。要查看安装了 orafce 的架构,请使用 \dx orafce.

您添加到问题中的图像表明该功能在 pg_catalog 中,但扩展安装在 public 中。由于在 pg_catalog 中禁止创建函数,因此必须有人修改了 PostgreSQL 目录才能实现这一点。我会说你的数据库搞砸了。你可以试试DROP EXTENSION orafce,接着CREATE EXTENSION orafce SCHEMA public,说不定可以修复损伤。