我在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.
答案 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)
我认为......请检查表名。不应该单引号.....只能用单引号引用.......