0

私はC#を使用してasp.netで作業していますが、SQLの単純な挿入クエリを作成するときにこのエラー1292の無効な日付形式を取得していますが、エンティティフレームの作業ではうまくいきます.SQL挿入クエリでエラーが発生するのはなぜですか? mysql を使用するデータベースの場合、列形式は日時形式です。

SQL コード

INSERT INTO `log`(`LogID`,`Time`,`Details`,`UserName`,`LogType`)
VALUES('0','6/30/2012 3:47:22 PM','testaaaa Deleted','admin','1');

エンティティ フレームワークの場合

log.AddLog();
//Where log is table object name.
4

4 に答える 4

3

STR_TO_DATESQL を直接使用するときに、MySQL が非標準の日付/時刻文字列を正しく解釈できるようにするために使用します。

STR_TO_DATE('6/30/2012 3:47:22 PM', '%m/%e/%Y %h:%i:%s %p')

あなたのためにトリックを行う必要があります。したがって、挿入ステートメントは次のようになります。

INSERT INTO `log`
  (`LogID`,
   `Time`,
   `Details`,`UserName`,`LogType`)
VALUES
  ('0',
   STR_TO_DATE('6/30/2012 3:47:22 PM', '%m/%e/%Y %h:%i:%s %p'),
  'testaaaa Deleted','admin','1')

MySQL エンティティ フレームワーク コードは、Dotnet 日付を MySQL コードの適切な形式に変換する方法を認識しています。そのため、正しく動作します。

ちょっと面倒な %m %h のものはここに示されています: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

于 2012-06-30T18:53:12.730 に答える
2

必ず次の形式で入力する必要があります: YYYY-MM-DD HH:mm:SS

だから試してみてください

INSERT INTO `log`(`LogID`,`Time`,`Details`,`UserName`,`LogType`)
VALUES('0','2012-06-30 15:47:22','testaaaa Deleted','admin','1');
于 2012-06-30T17:34:01.627 に答える
-1

日時フィールドにはさまざまな形式が受け入れられます。使用している形式で PM を使用できないと確信しています。午後 4 時、午後 3 時などしか使用できません。午後の部分を削除してみて、それがうまくいくかどうかを確認してください。

于 2012-06-30T17:37:34.193 に答える
-1

私は思う...... plsはテーブル名をチェックします..それは一重引用符で囲まれるべきではありません.....値のみが一重引用符で囲まれるべきです.......

于 2012-06-30T18:53:00.153 に答える