我有以下数据集
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')
我想通过仅过滤the_debt_paid
在2019年6月所在的行来查询此数据集。
预期结果是:
the_debt_id the_debt_paid the_debt_due
LMUS01 2019-06-03 2019-06-02
LMUS02 2019-06-07 2019-06-07
我尝试了以下操作:
SELECT * FROM my_table
WHERE EXTRACT(month, the_debt_paid) = 6
但是我不知道如何在2019年这一年申请。任何帮助将不胜感激。
答案 0 :(得分:3)
使用直接日期比较!
SELECT *
FROM my_table
WHERE the_debt_paid >= '2019-06-01' AND
the_debt_paid < '2019-07-01';
从多个角度来看,在日期上使用函数都是不好的。
答案 1 :(得分:2)
尝试一下:
state_id
您也可以这样编写查询:
zip
您可以使用SELECT * FROM my_table
WHERE EXTRACT('month' from the_debt_paid) = 6
and EXTRACT('year' from the_debt_paid)=2019
比较月份和年份
DEMO