【发布时间】:2020-05-22 21:11:27
【问题描述】:
我有下表:
CREATE TABLE my_table
(
the_debt_id varchar(6) NOT NULL,
the_debt_paid timestamp NOT NULL,
the_debt_due date NOT NULL
)
INSERT INTO my_table
VALUES ('LMUS01', '2019-05-03 09:00:01', '2019-05-02'),
('LMUS01', '2019-06-03 10:45:12', '2019-06-02'),
('LMUS01', '2019-07-01 15:39:58', '2019-07-02'),
('LMUS02', '2019-05-03 19:43:44', '2019-05-07'),
('LMUS02', '2019-06-07 08:37:05', '2019-06-07')
我想要日期差异,但某些付款日期the_debt_due 落在星期日(例如 6 月 7 日)。如果付款日是星期天,我想给the_debt_due加1,所以好的付款人的差是0或负数(预付)。
结果应该如下:
SELECT (date(the_debt_paid) - the_debt_due) AS date_diff
FROM my_table
但我不知道如何判断上一个查询是星期天是星期天。
预期输出
date_diff
1
0
-1
-4
0
请注意,第二行是 0,因为截止日期是星期日。
任何帮助将不胜感激。
【问题讨论】:
-
正如我之前解释的那样:
extract(day from ..)不给你以天为单位的间隔长度。 -
你好@a_horse_with_no_name,我将我的问题编辑为正确的天数。谢谢!
标签: sql postgresql date select