我正在尝试使用SQL选择日期范围,我遇到了一些问题:
当我按照以下方式运行时:
SELECT ... as edate ...
WHERE edate
BETWEEN To_Date('10/15/2010', 'MM/DD/YYYY')
AND To_Date('10/15/2011', 'MM/DD/YYYY')
它将以
返回ORA-01848:不是有效月份
。表本身包含沿MM / DD / YYYY HH:mm:ss行的完整日期值。可能是因为我正在做一个SELECT edate,其中edate不是'cast'作为它无法匹配的日期吗?
当我按照以下方式运行时:
WHERE date BETWEEN '10/15/2010' AND '12/15/2011'
如果它们在10/15/2010至2010年12月31日的范围内,则会选择正确的日期,但不会选择2011年1月1日至2010年12月15日期间的日期。换句话说,它不会围绕这一年。
答案 0 :(得分:2)
试试这个。 WHERE to_Date(edate,'MM / DD / YYYY')
我是一个SQL人,但我认为如果你转换eDate你应该是好的。
答案 1 :(得分:0)
要回答我自己的问题,是的,为了比较苹果和苹果,我需要
select to_date(value, 'MM/DD/YYYY HH24:MI:SS') ... as edate
并使用
To_Date('10/15/2011', 'MM/DD/YYYY HH24:MI:SS')
以便进行适当的日期比较。