PostgreSQL:调用 EXTRACT 函数作为参数传递查询的一个字段

PostgreSQL: call EXTRACT function passing as argument one field of the query

我想知道是否可以使用提取功能:

EXTRACT(field from timestamp)

字段是查询中的值吗?

请看这个(简化的)例子:

SELECT c.name, EXTRACT(f.frecuency from NOW())
FROM contacts c 
INNER JOIN frecuencies f ON c.id = f.contact_id 

来自下表:

contacts table: 
---------------------
| id   |   name     | 
---------------------
| 123  |   Test     | 
---------------------

 frecuencies table: 
---------------------------------
| id | contact_id | frecuency |
---------------------------------
| 1  |   123      |  DAY        |
--------------------------------- 

我进行了查询(以多种方式)并收到消息:

timestamp with time zone units "frecuency" not recognized

因此我想知道是否存在一些解决方法。

提前谢谢你。

PD:如果您认为问题标题或body需要改进请继续,我将非常感谢!

只需使用 date_part,其中 according to the documentationEXTRACT 相同,如本例所示:

WITH units(u) AS (VALUES ('day'))
SELECT date_part(u, current_timestamp) FROM units;
┌───────────┐
│ date_part │
├───────────┤
│        18 │
└───────────┘
(1 row)