我有以下数据集:
CREATE TABLE my_table
(
the_debt_id varchar(6) NOT NULL,
the_debt_paid date NOT NULL,
the_debt_due date NOT NULL
)
INSERT INTO my_table
VALUES ('LMUS01', '2019-05-03', '2019-05-02'),
('LMUS01', '2019-06-03', '2019-06-02'),
('LMUS01', '2019-07-01', '2019-07-02'),
('LMUS02', '2019-05-03', '2019-05-07'),
('LMUS02', '2019-06-07', '2019-06-07')
我尝试运行此查询:
SELECT EXTRACT(DAY FROM the_debt_paid - the_debt_due) AS date_diff
FROM my_table
告诉我这个错误:
ERROR: function pg_catalog.date_part(unknown, integer) does not exist
LINE 1: SELECT EXTRACT(DAY FROM the_debt_paid - the_debt_due) AS dat...
我被这个查询卡住了,为什么提取函数不起作用,你能帮我吗?谢谢您。
2条答案
按热度按时间am46iovg1#
你不需要
extract()
,一个简单的差异就可以了。正如手册中所记载的,两者之间的区别
date
值是它们之间的天数。extract适用于
date
,timestamp
以及interval
表达。正如手册所述,两者之间的区别date
价值观是一个integer
,和extract
对整数根本不起作用。另外,
extract(day from some_interval)
只给出间隔的一天部分,而不是间隔的天数。e、 g.区间值为3 months 0 days
,extract(day from ...)
会回来的0
nnvyjq4y2#
--结果:3这里有一个例子,你可以尝试一下