我只想在 Oracle 数据库中选择第 1 个和第 20 个日期。
这是我的查询。
SELECT INVOICE_DATE
FROM invoice_debt@stilng1_lngrpt2
WHERE INVOICE_DATE = TO_DATE('01', 'DD')
AND INVOICE_DATE = TO_DATE('20','DD')
AND INVOICE_DATE > TO_DATE('30-12-2010', 'DD-MM-YYYY')
AND INVOICE_DATE IS NOT NULL GROUP BY INVOICE_DATE
ORDER BY INVOICE_DATE DESC;
我的查询运行这个:
但没有任何记录返回。
我尝试使用
EXTRACT
获取日期,但我不能使用 WHERE
条款。SELECT
EXTRACT(DAY FROM TO_DATE(INVOICE_DATE, 'DD-MM-YY')) as DAY_EXTRACT
FROM invoice_debt@stilng1_lngrpt2;
请帮帮我谢谢。
:)
最佳答案
对日期使用 OR 条件,因为您不能将相同的 invoice_date 设为第 1 天和第 20 天,并且还使用 to_char 作为发票日期,因为 to_date 只会返回一个日期
SELECT INVOICE_DATE
FROM invoice_debt@stilng1_lngrpt2
WHERE (to_char(INVOICE_DATE, 'DD')='01'
OR to_char(INVOICE_DATE,'DD')='20')
AND INVOICE_DATE > TO_DATE('30-12-2010', 'DD-MM-YYYY')
AND INVOICE_DATE IS NOT NULL GROUP BY INVOICE_DATE
ORDER BY INVOICE_DATE DESC;
关于sql - 如何在Oracle中选择特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248436/