0

次のコードを使用して日付を生成し、hsql データベースの日付フィールドに日付パラメーターとして渡します。

  Calendar cal = Calendar.getInstance();  
  cal.setTime(new Date());  
  cal.set(Calendar.HOUR_OF_DAY, 0);
  cal.set(Calendar.MINUTE, 0);
  cal.set(Calendar.SECOND, 0);
  cal.set(Calendar.MILLISECOND, 0);
  cal.add(Calendar.YEAR, -1);
  Date cutOffDate = cal.getTime();
  String dateFormatter = new SimpleDateFormat("dd-MMM-yyyy").format(cutOffDate);
  queryBuilder.append(" and c.ContactDt >= :cutOffDate ");

しかし、c.ContactDt は Date です。日付を渡す必要があります。値 cal.getTime() を渡すと、無効な形式が表示されます。だから私はdateFormatter日付に変換する必要があります。

変換するにはあまりにも多くのコードを追加しています。ですから、もっと良い方法があるに違いないと思います。何か案が?

4

2 に答える 2

0

Calendar.getTimeは日付を返し、Date.getTime()は long を返します。これは、日付を HSQL ストアド プロシージャに渡すために使用するサンプルです。java.sql.date に変換することに注意してください。おそらくそれを行うためのより良い方法ですが、少なくとも1つの方法がわかります。

static JSONArray getSigsummXtab(Connection cn, int mySiteid, Date myDate ) throws SQLException {
PreparedStatement pstmt = cn.prepareStatement("{ call rpt.getSigsummXtab(?, ?) }");
pstmt.setInt(1, mySiteid);
pstmt.setDate(2, new java.sql.Date(myDate.getTime()));
pstmt.execute(); 
pstmt.close();
}
于 2013-06-30T01:34:49.817 に答える