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

Posted

技术标签:

【中文标题】#1292 运行查询时 MySQL 中不正确的日期时间值错误【英文标题】:#1292 Incorrect date time value error in MySQL when running a query 【发布时间】:2021-11-11 05:28:51 【问题描述】:

我正在尝试过滤两个日期之间的数据。但它抛出一个错误。

警告:#1292 不正确的日期时间值:第 1 行 ..date_field 列的“1631254384”

我正在运行的查询是:

SELECT * 
FROM `tblletter` 
WHERE (date(date_field) BETWEEN '2021-09-10' AND '2021-09-15')

date_field 看起来像这样

我在 google 上查找了错误,发现它们可能是 sql_mode 的问题。但我还是解决不了。

【问题讨论】:

你可以试试 DATE(FROM_UNIXTIME(date_field) 而不是 date(date_field) 【参考方案1】:

date_field 包含 Unix 时间戳,而不是 DATETIME 或可以解析为日期的字符串。使用FROM_UNIXTIME() 函数将其转换为DATETIME

SELECT * 
FROM `tblletter` 
WHERE (DATE(FROM_UNIXTIME(date_field)) BETWEEN '2021-09-10' AND '2021-09-15')

【讨论】:

非常感谢。成功了

以上是关于#1292 运行查询时 MySQL 中不正确的日期时间值错误的主要内容,如果未能解决你的问题,请参考以下文章

日期时间格式无效:1292 日期时间值不正确 [重复]

正确格式化的 MySQL 日期插入语句返回全 0

Java 获取的日期和mysql数据库中不一致问题(完美解决)

MySQL ORDER BY 根据日期时间查询返回不正确的结果

PHP MySQL查询在结果中显示错误的日期时间

标准 SQL 查询在 BigQuery 中返回正确结果,但在 Data Studio 中不返回