-1

私は JDBC 接続と Java Swing UI を使用しており、そこで SqLite DB を使用しました。
ここに、日付をピックアップするためのjCalenderであるJavaコンポーネントがあり、日付を文字列に選択します。


まず、文字列を java.util 日付に変換してから、java.util.date を java.sql.date に変換しますが、日付文字列形式は「dd/MM/YYYY」です &

次に、
DateFormat format = new SimpleDateFormat("dd/MM/YYYY", Locale.ENGLISH);

上記の特定の日付形式を設定しました。しかし、日付間のレコードを検索するとまだ問題があります。

ここにコードのコピーを添付しました plz guyz help me それは非常に重要です。



    String from_date = ((JTextField) txt_bilty_date_start.getDateEditor().getUiComponent()).getText();
    String to_date = ((JTextField) txt_bilty_date_end.getDateEditor().getUiComponent()).getText();

    DateFormat format = new SimpleDateFormat("dd/MM/YYYY", Locale.ENGLISH);
    Date date1 = format.parse(from_date);
    Date date2= format.parse(to_date);

    java.sql.Date sqlDate1 = new java.sql.Date(date1.getTime());
    java.sql.Date sqlDate2 = new java.sql.Date(date2.getTime());

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/YYYY");

    System.out.println("\t\tafter change date");
    System.out.println(sdf.format(sqlDate1));
    System.out.println(sdf.format(sqlDate2));

    String sql = "select * from employee where record_date BETWEEN '"+sdf.format(sqlDate1)+"' AND '"+sdf.format(sqlDate2)+"' ";

    pst=conn.prepareStatement(sql2);
    rs = pst.executeQuery();
    tbl_employee.setModel(DbUtils.resultSetToTableModel(rs));
4

1 に答える 1

2

record_dateがデータベースの SQL 日付(varchar ではない) であると仮定して、適切なPreparedStatement.

String sql = "select * from employee where record_date BETWEEN ? AND ?";
pst=conn.prepareStatement(sql2);
pst.setDate(1, sqlDate1);
pst.setDate(2, sqlDate2);
rs = pst.executeQuery();

Java 7 で導入されたtry-with-resource を使用すると、最終的にクローズドの try / catch / check 全体がはるかに簡単になったことに注意してください。

日付が varchar の場合、フィールドの順序を逆にして、最も重要なフィールドを前に配置する必要がありますyyyy MM dd。何らかの方法で。Stringそうして初めて、 /比較の結果は、VARCHAR文字列の文字列表現の場合と同じように機能します。

于 2016-02-02T07:20:28.930 に答える