私のJSPページには、日付であるフィールドがあり、取得すると私にrequest.getParameter("dateVal");
与えられます
15-Dec-2012 12:21.
この値をデータベース プロシージャに渡し、テーブルに挿入/更新したいと考えています。データベースにsetDate
使用する値を渡すにはどうすればよいですか?prepareCall
ありがとう
最初のステップは、コントローラーで完全なインスタンスにSimpleDateFormat
解析するために使用します。java.util.Date
Date date = new SimpleDateFormat("dd-MMM-yyyy HH:mm.", Locale.ENGLISH).parse(dateVal);
java.sql.Date
次に、データベース層でその時間帯を作成できます。
statement.setDate(1, new java.sql.Date(date.getTime()));
具体的な問題とjava.sql.Date
は関係ありませんが、時間の部分は覚えていませんのでご了承ください。実際にDB にフィールドではなくDATETIME
orフィールドがある場合は、代わりに aを使用します。このようにして、時間部分も保存されます。TIMESTAMP
DATE
setTimestamp()
java.sql.Timestamp
@BalusC の答えは完璧です。ただし、代替ソリューションとして、データベースが提供する関数を使用して、クエリ中に文字列を日付に変換できます。たとえば(Oracleを使用する場合)、
to_date(date_in_String, format)
これを試して :
new SimpleDateFormat("dd-MM-yyyy HH:mm").parse(mydate);