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 documentation 与 EXTRACT
相同,如本例所示:
WITH units(u) AS (VALUES ('day'))
SELECT date_part(u, current_timestamp) FROM units;
┌───────────┐
│ date_part │
├───────────┤
│ 18 │
└───────────┘
(1 row)
我想知道是否可以使用提取功能:
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 documentation 与 EXTRACT
相同,如本例所示:
WITH units(u) AS (VALUES ('day'))
SELECT date_part(u, current_timestamp) FROM units;
┌───────────┐
│ date_part │
├───────────┤
│ 18 │
└───────────┘
(1 row)