将年份连接到Oracle SQL中的日期

时间:2016-01-26 18:14:25

标签: sql oracle date

我正在尝试创建一个动态查询,查找一年中两天(去年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

1 个答案:

答案 0 :(得分:2)

无需转换为字符串并返回:

and ph.batch_date >= add_months(trunc(sysdate,'YEAR'), -6) 
and ph.batch_date <  add_months(trunc(sysdate,'YEAR'), 6)