将datetime插入MySQL表超过24小时标记

将datetime插入MySQL表超过24小时标记,mysql,datetime,Mysql,Datetime,我将数据插入一个包含日期时间的表中,如下所示: STR_TO_DATE('2014-10-06 24:04:05','%Y-%m-%d %H:%i:%s') 对于时间以“24”开头的所有记录(如上所述),它在我的表中显示为“NULL”,因为它无法识别 插入表格时,如何将24改为00?或者有其他方法可以做到这一点吗?用于日期类型列。使用“日期”类型,其格式为“YYYY-mm-dd h:i:s” 所以,echo$CurrentDateTime1=date('Y-m-dg:i:s');=>2015-

我将数据插入一个包含日期时间的表中,如下所示:

STR_TO_DATE('2014-10-06 24:04:05','%Y-%m-%d %H:%i:%s')
对于时间以“24”开头的所有记录(如上所述),它在我的表中显示为“NULL”,因为它无法识别


插入表格时,如何将24改为00?或者有其他方法可以做到这一点吗?

用于日期类型列。使用“日期”类型,其格式为“YYYY-mm-dd h:i:s”

所以,
echo$CurrentDateTime1=date('Y-m-dg:i:s');=>2015-08-26 20:21:22

或者,
echo$CurrentDateTime2=date('d-m-Y G:i:s');=>26-08-2015 20:21:22

因此,$CurrentDateTime2不是Y-m-d格式。您需要更改此格式。 所以,用这种方式改变它

echo $CurrentDateTime3=date('Y-m-d G:i:s',strtotime($CurrentDateTime2)) 
=>2015-08-26 20:21:22

现在,在表中插入“$CurrentDateTime3”。

您可以在MySQL中使用
REPLACE
-函数

STR_TO_DATE(REPLACE('2014-10-06 24:04:05',' 24:',' 00:'),'%Y-%m-%d %H:%i:%s')

这种方法replace只匹配hour部分,如果hour不是24,则不会更改任何内容。

是否使用PHP将行插入MySQL?为什么不使用PHP检查24小时,然后将其转换为
00
?您好,我在MySQL中直接使用脚本:
INSERT-INTO
,我认为您解决了问题的错误端。那不是一个有效的时间。你需要找到它的来源并解决它。是的,公平点,我会调查一个。谢谢,mäksä,这很有效。经过反思,我还可以在文本编辑器中打开脚本,并用“24:”和“00:”替换所有脚本。谢谢你的回答。记住在24:00之前加上空格,否则01:01:24将转换为01:01:00