- - PR -
JDBCで日付を比較する場合
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-24 13:29
ご質問させて下さい。
JDBCで開始日付〜終了日付の中のデータを取り出す SQL文のWHERE句に -------------------------------------------- WHERE TIME BETWEEN TO_DATE('?' , 'YYYY/MM/DD') AND TO_DATE('?' , 'YYYY/MM/DD')" -------------------------------------------- と記載し、バインド変数に入れる変数として 開始日付の?には、String型の変数(2007/04/01)、 終了日付の?には、String型の変数(2007/04/30)をセットしました。 実際のレコードのTIMEには、0000/00/00といった形式で 値が入っていたので、それに合わせた形式(0000/00/00)にしました。 ですが、上記のやり方ですと、データの取得が出来ませんでした。 色々と検索もしてみたのですが、解決できませんでした。 申し訳ございませんが宜しくお願い致します。 | ||||||||
|
投稿日時: 2007-07-24 14:10
[ メッセージ編集済み 編集者: taku 編集日時 2007-07-24 14:10 ] | ||||||||
|
投稿日時: 2007-07-24 14:32
taku様
ありがとうございます。 完全に初歩的な記述ミスでした。 ですが、’’を外したのですが、 データの取得ができませんでした。 ------------------------------------------------------- WHERE TIME BETWEEN TO_DATE('2007/04/01' , 'YYYY/MM/DD') AND TO_DATE('2007/04/30' , 'YYYY/MM/DD')" ------------------------------------------------------- と直接CSEで実験したのですが、 変わらず・・・。 レコードの形式に合わせると思っているのですが、 何が原因なんでしょうか? | ||||||||
|
投稿日時: 2007-07-24 14:43
そもそも SQL を直接実行してヒットするデータが入ってるんでしょうか。
_________________ もしもし@RMAN 友の会 | ||||||||
|
投稿日時: 2007-07-24 14:50
もしもし様
ありがとうございます。 データはございます。 「yyyy/mm/dd hh24:mi:ss」まであるデータと 「yyyy/mm/dd」までのデータが入り混じっております。 試しに、'’を外した値を入れてCSEで実行しましたら、 ----------------------------------------------- ORA-00932: データ型が一致しません: DATEが予想されましたがNUMBERです。 ----------------------------------------------- とエラーが出てしまいました。 | ||||||||
|
投稿日時: 2007-07-24 15:45
DATE 型で時間のある・無いはあり得ないから、CHAR とかなんだろうな... せっかく SQL で TO_DATE してるのに元のデータが DATE 型じゃないってのもどうかと。
TO_DATE の第一引数に '' 括ってない値を入れたら、2007÷4÷1 みたいな 割り算の計算結果で実行しようとします。 _________________ もしもし@RMAN 友の会 | ||||||||
|
投稿日時: 2007-07-24 15:55
CSEを使用する場合は、'がないとダメですよ。
このことは、もしもしさんのおっしゃっています。 >TO_DATE の第一引数に '' 括ってない値を入れたら、2007÷4÷1 みたいな >割り算の計算結果で実行しようとします。 で、 WHERE TIME BETWEEN TO_DATE('2007/04/01' , 'YYYY/MM/DD') AND TO_DATE('2007/04/30' , 'YYYY/MM/DD')" としたときの結果は、 エラーではなく、データが取得できなかったんですよね? とすると、やっぱり もしもしさんがおっしゃっているように データがヒットしていないだけだと思います。 >そもそも SQL を直接実行してヒットするデータが入ってるんでしょうか。 | ||||||||
|
投稿日時: 2007-07-24 17:24
もしもし様
KOX様 ありがとうございます。 SQLの知識が乏しい自分が悲しいです。 データを再度確認したのですが、 確かに2007/04/01〜2007/07/01まで、 この形式で格納されておりました。 エラーの表示ではなく、 データの取得ができないのですが、 他に考えられる原因はありますでしょうか? |
1|2|3
次のページへ»