2010-01-15 173 views
0

我試圖使用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

回答

0

回答我的問題,是的,爲了蘋果比較蘋果,我需要

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

2

試試這個。 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