我插入这个DateTime
数据'12/21/2012 1:13:58 PM'
到我的MySQL数据库使用该SQL字符串:
String Query = "INSERT INTO `restaurantdb`.`stocksdb`
(`stock_ID`,`stock_dateUpdated`)
VALUES ('@stockID' '@dateUpdated');
我收到此错误信息:
Incorrect datetime value: '12/21/2012 1:13:58 PM' for column 'stock_dateUpdated' at row 1
那么,什么是正确的格式/值, dateTime
输入到MySQL数据库?
问:什么是正确的格式/值对DATETIME
文字MySQL的语句中?
答:在MySQL中,一个标准格式DATETIME
文字是:
'YYYY-MM-DD HH:MI:SS'
与时间分量作为一个24小时时钟(即,小时数字为00和23之间的值提供)。
MySQL提供了内置函数STR_TO_DATE
它可以在各种格式字符串转换为DATE
或DATETIME
数据类型。
因此,作为替代,还可以指定的值DATETIME
与该函数的调用,就像这样:
STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p')
所以,你可以有MySQL的做转换为你在INSERT
语句中,如果您的VALUES
列表是这样的:
... VALUES ('@stockID', STR_TO_DATE('@dateUpdated','%m/%d/%Y %h:%i:%s %p');
(我注意到你有必要的逗号在两个字符串之间缺少VALUES
列表。)
MySQL的确实允许在各部分之间分隔符的一些纬度DATETIME
文字,所以他们没有严格要求。
MySQL的5.5参考手册。
我所使用的工作原理是年 - 月 - 日,24小时的时间。 在PHP它的date('Ymd H:i:s')
我相信将对应于yyyy-MM-dd HH:mm:ss
。在C#/ NET。 (该时间部分是可选的,因此是短划线)。
证实了在文档, 日期和时间文字 :
日期和时间值可以以几种格式,如引用的字符串或数字表示,这取决于确切的类型的值和其它因素。 例如,在上下文中,其中的MySQL预计日期时,它解释任何的“2015年7月21日”,“20150721”和20150721为一个日期。
正如在评论中提到,你缺少的分隔符,
在值。 另外最好使用STR_TO_DATE
首先将像以前一样字符串转换成日期对象转换:
String Query = "INSERT INTO `restaurantdb`.`stocksdb` "+
" (`stock_ID`,`stock_dateUpdated`) VALUES "+
"('@stockID', STR_TO_DATE(@dateUpdated, '%m/%d/%Y %h:%i:%s %p'))";
MySQL的DATETIME格式为YYYY-MM-DD HH:MM:SS -请参阅此页