【发布时间】:2014-06-16 09:42:12
【问题描述】:
我想知道过去三个月 Kiln 停了多少次。我有以下查询:
SELECT SUM(kiln_no_stops) from monthly_report
where date BETWEEN DATE_FORMAT(NOW() - INTERVAL 3 MONTH, '%m-%Y')
AND DATE_FORMAT(NOW() , '%m-%Y')
当我使用这个查询时,我得到了这个错误
“where 子句”中的未知列“日期”。
但我可以使用以下查询获取过去一个月的数据:
SELECT SUM(kiln_no_stops)
from monthly_report
where date_format(yesterday,'%m-%Y')=Date_format(NOW() - INTERVAL 1 MONTH,'%m-%Y')
如何获取过去三个月的“总停靠次数”数据?
【问题讨论】:
-
看起来您的字段名称是
yesterday而不是date -
比较日期时不应使用
%m-%Y格式,请使用%Y-%m。否则12-2013将大于01-2014。 -
date是 mysql 中的保留关键字。尝试使用其他关键字,例如 tran_date 等。这可能是问题所在。 -
@AnkitBajpai 它是保留的,但如果你将它括在反引号中,你仍然可以使用它。 : `日期`
-
好的,是否有任何通用查询来获取最近三个月的数据或获取从“x”月到“y”月的数据?我的表位于使用 MySQL 进行数据库连接的 SCADA 工具中。是的,没有日期列。但我不知道我可以用什么代替日期。如果我使用 tran_date 而不是日期,我仍然会收到相同的错误 - 'where 子句'中的未知列'tran_date'。