日付フィールドを更新しているときに、更新が NetBeans から機能せず、以下の例外が発生します
Java.sql.sqlexception: char データ型から datetime データ型への変換により、範囲外の datetime 値が発生しました
ただし、同じクエリを実行すると、クエリは SQL Query Analyzer (SQL Server 2000) で正常に動作します。
NetBeans で次のように更新されるように日付値をフォーマットしています。
JXDatePicker jDatePicker = (JXDatePicker) comp;
Date date = jDatePicker.getDate();
if (date != null) {
try {
String expectedPattern = "yyyy-MM-dd HH:mm:ss.SSS";
String currentFormat = "dd-MM-yyyy HH:mm:ss.SSS";
SimpleDateFormat dateFormatReq = new SimpleDateFormat(expectedPattern);
SimpleDateFormat dateFormatCurr = new SimpleDateFormat(currentFormat);
// To Convert Date To Required Format For DB
//First Prepare A String In Current Format dd-MM-yyyy
// Then Convert To The Date In The Current Format dd-MM-yyyy
// Then Convert Into String In The Desired Format yyyy-MM-dd
String strDate = dateFormatReq.format(dateFormatCurr.parse(dateFormatCurr.format(date)));
} catch (ParseException ex) {
Logger.getLogger(ChangeJControlProperties.class.getName()).log(Level.SEVERE, null, ex);
}
}
String query =update myTable
set date=strDate where id=myDd
Date 2013-07-05 の場合、正常に更新されます。
Date 2013-06-28 の場合、上記の例外が表示されます