• ベストアンサー

日付の比較

お世話になります、 SQL文で以下の質問をさせてください。 (1).条件に合う日付を取得する方法  具体的には、2001/07/17~2001/08/17の間のものを全て取得する。 (2).(1)の応用で2001/08/17以前のものを全て取得する。 (3).(1)の応用で2001/07/17以降のものを全て取得する。 です。WHERE条件にどのように記述すればよいのか教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pussyfoot
  • ベストアンサー率28% (39/138)
回答No.4

(1) WHERE hizuke BETWEEN TO_DATE('2001/07/17','YYYY/MM/DD) AND TO_DATE('2001/08/17','YYYY/MM/DD) (2),(3)は応用ですし、下の方の書き方を参考にすればわかると思います。 明示的に指定しない場合は、暗黙の変換が行われます。 行われるルールについては、初期化パラメータなどに依存します。 詳しくはマニュアルSQLリファレンスの書式モデルとTO_DATE関数をご覧ください。

その他の回答 (3)

  • pussyfoot
  • ベストアンサー率28% (39/138)
回答No.3

データベースは何を用いてますか? データベースによって若干日付型の表記方法が違う場合がありますし、条件と比較する対象のフィールドの型によっても違います。 フィールドの型が日付型なら、条件にたいして明示的に日付として指定してやらないと、OS(データベース)任せで変換させる事になり、期待通りの結果が得られない場合があります。(いわゆつ2001年問題とかです。2001年問題については詳しくは検索してください。)

noname#1752
質問者

補足

Oracle8.1.6です。フィールドはDate型です。

  • trytrytry
  • ベストアンサー率37% (13/35)
回答No.2

すいません。 テーブル名でなく、フィールド名です。

  • trytrytry
  • ベストアンサー率37% (13/35)
回答No.1

(1) where テーブル名 Between '2001/07/17' AND '2001/08/17' (2) where テーブル名 < '2001/08/17' (3) where テーブル名 > '2001/07/17' で、どうでしょ。

関連するQ&A