0

重複の可能性:
ORA-01830: 入力文字列全体を変換する前に日付形式ピクチャが終了します

次の方法でシステムの現在の日付と時刻を取得しています。

String months[] = {"Jan", "Feb", "Mar", "Apr","May", "Jun", "Jul", "Aug","Sep", "Oct",     "Nov", "Dec"};
Calendar cal = new GregorianCalendar();
String month = (months[cal.get(Calendar.MONTH)]);
int year = cal.get(Calendar.YEAR);
int day = cal.get(Calendar.DAY_OF_MONTH);

int second = cal.get(Calendar.SECOND);
int minute = cal.get(Calendar.MINUTE);
int hour = cal.get(Calendar.HOUR);

String date= day+"/"+month+"/"+year;
String time=hour+":"+minute+":"+second;

ps.setString(14, date+" "+time);

しかし、今、上記の準備済みステートメントを使用してテーブルに日付と時刻を挿入しようとすると。

次のエラーが発生します。

入力文字列全体を変換する前に日付形式の画像が終了する

どうすればこれを解決できますか?

4

1 に答える 1

1
  1. 列に日付と時刻を格納するタイプがある場合は、String ではなく PreparedStatement Date に渡すようにしてください
  2. 作成または更新のタイムスタンプを保存したいだけの場合は、トリガーまたはデフォルトの列値を使用してDBでこれを行う方が簡単でエラーが発生しにくいです
  3. 日付を文字列にフォーマットするには、SimpleDateFormat などを使用することをお勧めします。
  4. Oracle によって解析される文字列を渡したい場合は、Oracle とアプリのロケール設定に注意する必要があります。または、スクリプトを変更して形式を含むようにすることもできます。たとえば、次のようなものを使用します。to_date(:paramString, 'YOUR_DATE_FORMAT')
于 2012-10-04T10:11:18.770 に答える