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

当您直接使用 SQL 时,您希望使用STR_TO_DATEMySQL 来正确解释您的非标准日期/时间字符串。

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

我认为......请检查表名......它不应该用单引号引起来......只有值应该用单引号......

于 2012-06-30T18:53:00.153 回答
-1

日期时间字段接受不同的格式。我很确定您不能以您正在使用的格式使用 PM。您只能使用 4 PM、3 PM 等。尝试移除 PM 部分,看看是否适合您。

于 2012-06-30T17:37:34.193 回答