我使用以下DateTime字符串将此'12/21/2012 1:13:58 PM'数据插入到我的MySQL数据库中:
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那么,在MySQL数据库中输入dateTime的正确格式/值是什么呢?
发布于 2012-12-21 13:19:06
Q:在MySQL语句中,DATETIME文本的正确格式/值是什么?
A:在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文本的各个部分之间使用一些分隔符,因此它们并不是必须的。
发布于 2012-12-21 13:18:54
我使用的是年-月-日,24小时时间。在PHP中,它是date('Y-m-d H:i:s'),我相信它与C#/.NET中的yyyy-MM-dd HH:mm:ss相对应(时间部分是可选的,破折号也是可选的)。
在文档中确认,Date and Time Literals
日期和时间值可以用多种格式表示,例如带引号的字符串或数字,具体取决于值的确切类型和其他因素。例如,在MySQL需要日期的上下文中,它将'2015-07-21‘、' 20150721’和20150721中的任何一个解释为日期。
发布于 2012-12-21 13:20:58
正如注释中提到的,值中缺少分隔符,。同样,最好先使用STR_TO_DATE将字符串转换为date对象,然后再插入as:
String Query = "INSERT INTO `restaurantdb`.`stocksdb` "+
" (`stock_ID`,`stock_dateUpdated`) VALUES "+
"('@stockID', STR_TO_DATE(@dateUpdated, '%m/%d/%Y %h:%i:%s %p'))";https://stackoverflow.com/questions/13984638
复制相似问题