我是DB的新手,我有一个关于根据日期显示表格内容的问题。
如何搜索 EMPLOYEE
表格中与 EmpPayScaleID
中的某些值匹配的所有实体以及+/- 3天< strong> EmpPayDate
例如,
我需要在 EMPLOYEE
表中打印所有值,其中 EmpPayScaleId
1001
和 EmpPayDate
应该是从01-AUG-17 +/- 3天(应显示从29-JUL-17到04-SEP-17的记录)
我试过了:
SELECT * FROM EMPLOYEE
WHERE EmpPayScaleId = 1001
AND EmpPayDate in ADD_MONTHS(01-Aug-17, -3, dd-mm-yy)
AND EmpPayDate in ADD_MONTHS(01-Aug-17, 3, dd-mm-yy);
更正:
SELECT * FROM EMPLOYEE
WHERE EmpPayScaleId = 1001
AND EmpPayDate in ADD_MONTHS(01-Aug-17, -3, 'DD-MON-YY')
AND EmpPayDate in ADD_MONTHS(01-Aug-17, 3, 'DD-MON-YY');
这没有任何表现。我的错误在哪里?
这是正确的查询吗?
修改
当我使用ADD_MONTHS(01-AUG-17, 3, 'DD-MON-YY')
答案 0 :(得分:1)
您的查询中的日期指定不正确。 以下where子句就足够了:
...
WHERE EmpPayScaleId = 1001
AND to_date('01-Aug-17','DD-MON-YY') between EmpPayDate-3
and EmpPayDate+3;