c#中的日期时间格式问题

时间:2012-06-30 17:20:51

标签: c# asp.net mysql sql c#-4.0

我在asp.net中使用c#在编写sql简单插入查询时获取此错误1292无效日期格式但是它与实体框架工作正常,为什么它给出了sql insert查询的错误?对于使用mysql和列格式的数据库是datetime格式。

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 个答案:

答案 0 :(得分:3)

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

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

应该为你做的伎俩。因此,您的insert语句变为:

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

答案 1 :(得分: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');

答案 2 :(得分:-1)

datetime字段接受不同的格式。我很确定你不能以你正在使用的格式使用PM。您只能使用下午4点,下午3点等。尝试删除PM部件,看看它是否适合您。

答案 3 :(得分:-1)

我认为......请检查表名。不应该单引号.....只能用单引号引用.......