如何在 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
,说不定可以修复损伤。
我对在 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
,说不定可以修复损伤。