2013-11-14 27 views
-1

我有日期的列表在表試圖列出特定日期在SQL

DATES 
---------- 
10-SEP-03 
10-SEP-03 
15-SEP-03 
15-SEP-03 
17-SEP-03 
18-SEP-03 
30-SEP-03 
01-OCT-03 
01-OCT-03 
05-OCT-03 
08-OCT-03 
05-MAY-03 
10-JUN-03 
12-JUN-03 

,我想它來顯示它同時排除那些與10月,我怎麼能做到呢? 我試過了日期!= '%OCT___';但沒有工作....

+0

什麼味道的SQL? – dav1dsm1th

回答

2

假設這是甲骨文(因爲你並沒有說明,但顯示SQLPLUS),和你有一個表調用Table:

select * 
    from table1 
    where extract(month from dates) <> 10 

格式是在sqlplus顯示是顯示格式,而不是數據庫中的內部表示。會話格式由NLS_DATE_FORMAT設置控制,請參閱here for details

爲了將來的參考,將日期字段與不符合日期格式的文字進行比較是一種不好的做法。例如,如果某人將NLS_DATE_FORMAT設置爲'MM/DD/YYYY',那麼使用「OCT」將不起作用,因爲默認格式預計爲月份值「10」。總是最好使用TO_DATE函數來轉換您的文字值適當的DATE類型。

0

OldProgrammer是絕對正確的,他的答案將在Oracle & PostgreSQL中起作用。以防萬一有人在那裏使用T-SQL,Access,mySQL或SQLite,它會看起來像這樣:

Select * 

From Table1 

Where MONTH(dates) <> 10 
+0

OldProgrammer的答案中的查詢實際上是標準的ANSI SQL(並且不僅僅是您提到的兩個DBMS) –