使用SQL选择日期范围

时间:2010-01-15 13:36:02

标签: sql mysql date

我正在尝试使用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日期间的日期。换句话说,它不会围绕这一年。

2 个答案:

答案 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')

以便进行适当的日期比较。