日期时间格式无效:1292 日期时间值不正确 [重复]
Posted
技术标签:
【中文标题】日期时间格式无效:1292 日期时间值不正确 [重复]【英文标题】:Invalid datetime format: 1292 Incorrect datetime value [duplicate] 【发布时间】:2017-07-18 07:45:23 【问题描述】:当我尝试使用字段(日期时间)更新表时出现以下错误
致命错误:未捕获的异常“PDOException”,带有消息“SQLSTATE[2007]:无效的日期时间格式:1292 不正确的日期时间值:最后更新的列的“02-27-2017 16:37”
我的 php 代码使用 PDO
$lastupdated = date('m-d-Y H:i:s');
$run = $conn->prepare($sql);
$run->bindParam(':lastupdated', $lastupdated, PDO::PARAM_STR);
SQL
最后更新,数据类型为datetime
现有数据
【问题讨论】:
日期格式明显错误。正确的是年月日 使用date('Y-m-d H:i:s')
?
date('Y-m-d H:i:s');
【参考方案1】:
您需要像"Y-m-d H:i:s"
这样格式化日期才能使用 mysql 日期时间字段。
即:
$lastupdated = date('Y-m-d H:i:s');
来自documentation:
DATETIME 类型用于同时包含日期和时间部分的值。 MySQL 以
'YYYY-MM-DD HH:MM:SS'
格式检索和显示 DATETIME 值。支持的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。
【讨论】:
来自documentation:任何标点字符都可以用作日期部分之间的分隔符。但真正的问题是他对日期部分的排序。 谢谢@TimBiegeleisen。不知道。 我也没有。我很高兴没有人真正使用2017@02@28
作为日期文字 :-)
@TimBiegeleisen 和 Jazz 感谢你们两位的帮助,它成功了。
@TimBiegeleisen 当然。我以前写的日期像 2017/02/28。这会很有用!以上是关于日期时间格式无效:1292 日期时间值不正确 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
带有消息“SQLSTATE [22007]”的未捕获异常“PDOException”:日期时间格式无效:1366 字符串值不正确
SQLSTATE[22007]:无效的日期时间格式:1366 字符串值不正确,html_entity_decode 函数