日期时间格式无效: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 日期时间值不正确 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

日期时间格式无效:1366 字符串值不正确

在 Laravel 迁移中更改日期格式

带有消息“SQLSTATE [22007]”的未捕获异常“PDOException”:日期时间格式无效:1366 字符串值不正确

SQLSTATE[22007]:无效的日期时间格式:1366 字符串值不正确,html_entity_decode 函数

#1292 运行查询时 MySQL 中不正确的日期时间值错误

将 NULL 插入 DATE 字段 MySQL 5.6