47

MySQL database日付タイプの列を持つ がありますDATETIME

外部アプリケーションから日付/時刻の文字列値を取得しています。その文字列値は次のようになります。

'5/15/2012 8:06:26 AM'

MySQL は INSERT: でエラーをスローします"Error. Incorrect datetime value"。私の回避策は、列のタイプを に変更するVARCHARことでしたが、これは機能しますが、将来使用するために適切な日付と時刻としてデータが本当に必要です。

MySQL DATETIME受け入れられている値のフォーマットを調査したところMySQLDATETIMEフォーマットが'YYYY-MM-DD HH:MM:SS'.

外部アプリケーションを変更して日付/時刻文字列をフォーマットに再フォーマットすることはできないため、これに対処するしか方法がありません。

私がする必要があるMySQL syntaxのは、ステートメント内で, を使用して既存の文字列を解析することだと思いますINSERTが、その方法がわかりません。INSERT ステートメントと組み合わせてSELECT、おそらく句を使用する必要があるという考えがあります。STR_TO_DATE

これが私の現在の INSERT ステートメントです。例をきれいにするために、問題を引き起こしていない他のフィールドを削除しました。

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES ('5/15/2012 8:06:26')
4

1 に答える 1

91

MySQL のSTR_TO_DATE()関数を使用して、挿入しようとしている文字列を解析します。

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES
  (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))
于 2012-05-17T13:04:32.133 に答える