下面给出的是我的Loan_Details表。
INST_MONTH START_AMOUNT
--------- ------------
17-JUN-16 10500
11-FEB-16 4500
11-MAR-16 4125
11-APR-16 3750
11-MAY-16 3375
11-JUN-16 3000
11-JUL-16 2625
11-AUG-16 2250
11-SEP-16 1875
11-OCT-16 1500
11-NOV-16 1125
11-DEC-16 750
11-JAN-17 375
我的查询是
select INST_MONTH
from loan_details
where to_char(INST_MONTH,'MM- YYYY') > to_char(TO_DATE('9/11/2016','MM/DD/yyyy'),'MM-YYYY')
当我需要选择大于11-OCT-2016的所有月份时,它总是返回
INST_MONTH
---------
17-OCT-15
17-NOV-15
17-DEC-15
11-OCT-16
11-NOV-16
11-DEC-16
为什么我错过11-JAN-17
?
(目前仅考虑月份和年份)
答案 0 :(得分:1)
您错误地使用Date
将to_char
列与字符匹配进行了比较。
您的查询应该是:
select INST_MONTH from loan_details
where INST_MONTH > TO_DATE('9/11/2016','MM/DD/yyyy')
只有月份和年份比较,您可以使用:
select INST_MONTH from loan_details
where TO_DATE(TO_CHAR(INST_MONTH, 'MM-YYYY'), 'MM-YYYY') > TO_DATE('09-2016','MM-YYYY')