我正在尝试创建一个动态查询,查找一年中两天(去年7月1日和今年6月30日)之间的所有日期。下面是我一直在尝试的查询的where子句:
and pbh.batch_date between
('30-JUN-'||extract(year from trunc(sysdate))-1))
and ('01-JUL-'||extract(year from trunc(sysdate))))
这会返回不一致的数据类型错误:预期DATE得到NUMBER。然后我尝试将它们投射到这样的日期:
and pbh.batch_date between
to_date(( '01-JUL-'||extract(year from trunc(sysdate))-1))
and to_date(( '30-JUN-'||extract(year from trunc(sysdate))))
但现在返回无效的数字错误。我不知道pbh.batch_date存储的格式是否有所不同,但它是(m)m /(d)d / yyyy
答案 0 :(得分:2)
无需转换为字符串并返回:
and ph.batch_date >= add_months(trunc(sysdate,'YEAR'), -6)
and ph.batch_date < add_months(trunc(sysdate,'YEAR'), 6)