什么是MySQL数据库的正确DateTime格式?(What is the correct Date

2019-07-17 11:09发布

我插入这个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数据库?

Answer 1:

问:什么是正确的格式/值对DATETIME文字MySQL的语句中?

答:在MySQL中,一个标准格式DATETIME文字是:

 'YYYY-MM-DD HH:MI:SS'

与时间分量作为一个24小时时钟(即,小时数字为00和23之间的值提供)。

MySQL提供了内置函数STR_TO_DATE它可以在各种格式字符串转换为DATEDATETIME数据类型。

因此,作为替代,还可以指定的值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参考手册。



Answer 2:

我所使用的工作原理是年 - 月 - 日,24小时的时间。 在PHP它的date('Ymd H:i:s')我相信将对应于yyyy-MM-dd HH:mm:ss 。在C#/ NET。 (该时间部分是可选的,因此是短划线)。

证实了在文档, 日期和时间文字 :

日期和时间值可以以几种格式,如引用的字符串或数字表示,这取决于确切的类型的值和其它因素。 例如,在上下文中,其中的MySQL预计日期时,它解释任何的“2015年7月21日”,“20150721”和20150721为一个日期。



Answer 3:

正如在评论中提到,你缺少的分隔符,在值。 另外最好使用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'))";


Answer 4:

MySQL的DATETIME格式为YYYY-MM-DD HH:MM:SS -请参阅此页



文章来源: What is the correct DateTime format for MySQL Database?