选择日期范围内使用SQL

选择日期范围内使用SQL

问题描述:

我试图使用SQL选择日期范围,我遇到的几个问题:选择日期范围内使用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到12/31/2010范围内而不是从1中所/ 1/2011至12/15/2010。换句话说,它不会在今年左右。

+4

你确定这是MySQL吗? ORA-01848是一个Oracle错误消息,To_Date是一个Oracle函数 – MartW 2010-01-15 13:38:18

回答我的问题,是的,为了苹果比较苹果,我需要

select to_date(value, 'MM/DD/YYYY HH24:MI:SS') ... as edate 

,还可以使用

To_Date('10/15/2011', 'MM/DD/YYYY HH24:MI:SS') 

,以作出适当的日期日期比较。

+2

那么你应该接受@ DB的答案,因为他在你做之前30分钟回答了答案。 :| – 2010-01-15 14:28:33

试试这个。 WHERE to_Date(edate,'MM/DD/YYYY')

我是一名SQL人员,但我认为如果您转换eDate,您应该很好。

+0

对不起,我的意思是“select ... as edate”,所以edate没有实际意义,我不能做一个WHERE edate To_Date(edate,' MM/DD/YYYY') AND To_Date(edate,'MM/DD/YYYY') – Rio 2010-01-15 13:46:59