2017-02-22 4 views
0

フォームから日付を取得しました。日付は、xxxx-xx-xx xx:xx:xxデータベースからDatetime型の列にフォームの日付を挿入する方法

のようになります。この日付文字列をデータベースのdatetime型の列に保存するにはどうすればよいですか。

私は、PreparedStatement psta = new PreparedStatement(sql)を使用してSQLの値を設定します。

したがって、私は値を事前に設定した日時型の列です。 psta.setDate()を使用するか、psta.setString()を使用する必要がありますか?

+0

あなたはSETDATE –

+0

使用を使用する必要があります[てSimpleDateFormat](https://docs.oracle.com/javase/7/docs/api/java/ text/SimpleDateFormat.html)を使用してStringをDateに変換し、 'setDate()'を使用します。 –

+0

'setDate()'ではなく 'setTimestamp()'を使用します。 – Andreas

答えて

1

setDate()を使用するように言ってすべてのコメントや他の回答を無視してください。代わりに、setTimestamp()を使用する必要があります。これは、日付文字列に時間(時、分、秒)があるためです。

  1. 最初に、SimpleDateFormatを使用してテキストを解析する必要があります。
  2. java.util.Dateからjava.sql.Timestampに変換してください。
  3. 最後にsetTimestamp()を呼び出します。
  4. すべてのすべてで

、次のように:

SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
java.util.Date date = fmt.parse(dateString); 
psta.setTimestamp(1, new java.sql.Timestamp(date.getTime())); 
+0

関連性:http://stackoverflow.com/a/24509527/2310289 –

+0

私はsetTimestampを使用します。しかし、エラー、java.sql.SQLException:列のカウントが行1の値の数と一致しない、スローされます。私は自分のパラメータの数と、テーブルの列を持つパラメータの名前をチェックしました。それは同じです – Will

+0

@ウィルあなたはそれを助けるためにあなたのコードをもっと表示しなければならないでしょうが、それは別の質問です。これはこの質問に対する答えです。あなたのSQL文中の '?'マーカを使って 'setXxx()'を呼び出すまでの問題の別の質問を作成してください。 – Andreas

関連する問題