-1

テーブルに日付のリストがあります

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___'; しかし、それはうまくいきませんでした....

4

2 に答える 2

2

これがOracleであると仮定します(あなたは述べていませんが、SQLPLUSを示しているため)、table1と呼ばれるテーブルがあります:

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

SQLPLUS で表示される形式は表示形式であり、データベースの内部表現ではありません。セッションの形式は、NLS_DATE_FORMAT 設定によって制御されます。詳細については、こちらを参照してください

今後の参考のために、日付フィールドを日付形式に準拠していないリテラルと比較することは悪い習慣です。たとえば、誰かが NLS_DATE_FORMAT を 'MM/DD/YYYY' に設定した場合、デフォルトの形式では月の値として "10" が想定されているため、"OCT" を使用しても機能しません。TO_DATE 関数を使用して、リテラル値を適切な DATE 型に変換することを常にお勧めします。

于 2013-11-14T19:07:03.253 に答える