- PR -

JDBCで日付を比較する場合

投稿者投稿内容
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2007-07-25 18:52
未だにどんな表の定義でどんな値が入っているか明かしてくれないので。

コード:

表定義、データ豆乳:

SQL> create table datetest (col1 date);

表が作成されました。

SQL> insert into datetest values (to_date('2007/04/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss'));

1行が作成されました。

SQL> insert into datetest values (to_date('2007/04/01 13:00:00', 'yyyy/mm/dd hh24:mi:ss'));

1行が作成されました。

SQL> insert into datetest values (to_date('2007/06/30 23:00:00', 'yyyy/mm/dd hh24:mi:ss'));

1行が作成されました。

SQL> insert into datetest values (to_date('2007/07/01 00:00:00', 'yyyy/mm/dd hh24:mi:ss'));

1行が作成されました。

SQL> insert into datetest values (to_date('2007/07/01 00:00:01', 'yyyy/mm/dd hh24:mi:ss'));

1行が作成されました。

SQL> commit;

コミットが完了しました。

SQL> alter session set nls_date_format ='yyyy/mm/dd hh24:mi:ss';

セッションが変更されました。

SQL> select * from datetest;

COL1
-------------------
2007/04/01 00:00:00
2007/04/01 13:00:00
2007/06/30 23:00:00
2007/07/01 00:00:00
2007/07/01 00:00:01



4/1 から 7/1 を「"yyyy/mm/dd" の書式で検索するので」検索対象は上から 4 件。

コード:

Java から:

import java.sql.*;

public class SelectDate {
public static void main(String[] args) {
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String sql = "select to_char(col1, 'yyyy/mm/dd hh24:mi:ss') col1" +
" from datetest" +
" where col1 between to_date(?, 'yyyy/mm/dd')" +
" and to_date(?, 'yyyy/mm/dd')";
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@<host>:<port>:<sid>","<user>","<passwd>");
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, "2007/04/01");
pstmt.setString(2, "2007/07/01");
ResultSet rset = pstmt.executeQuery();
while (rset.next()) {
System.out.println(rset.getString("col1"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}



接続先その他は適宜埋めていただくとして、

コード:

結果:

2007/04/01 00:00:00
2007/04/01 13:00:00
2007/06/30 23:00:00
2007/07/01 00:00:00



予定通り。

ってことで、やっぱりデータ入ってないんじゃ?
(だって SQL 直でもヒットしないんですよね?)

_________________
もしもし@RMAN 友の会

[ メッセージ編集済み 編集者: もしもし 編集日時 2007-07-25 18:53 ]

[ メッセージ編集済み 編集者: もしもし 編集日時 2007-07-25 19:05 ]
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-07-25 23:37
引用:

java初心者★さんの書き込み (2007-07-25 17:57) より:
SQL*Plusでも一緒でした…。


何と一緒といっています?
こちらからそちらの状況を確認するために、「該当カラムのデータ型を確認してくれ」という話があがっていたはずです。
データ型は何だったのですか?

あなたがうまく状況を伝えない限り、こちらはどうやったってそちらで起きている問題を特定できないのです。
伝達が誤解ないように気をつけると話が進みやすいですよ。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-07-26 09:38
もしもし様
nagise様

ありがとうございます。
再度、確認致します。

申し訳ございません。

スキルアップ/キャリアアップ(JOB@IT)