我如何生成一个MySQL查询来抓取某个特定月份之间的行,例如,抓取一个月份介于01/01 (1月1日)和01/06 (6月1日)之间的行
发布于 2012-01-19 18:07:59
我不确定,如果您想要抓取从1月到6月的所有行,只抓取6月1日之前的行或从1月到5月的所有行。例如,您可以使用:
[...] WHERE `date_column` BETWEEN '2012-01-01' AND '2012-06-01'它给出了包括6月1日在内的所有行。
使用此命令可以获取从1月到6月的完整月份的所有行:
[...] WHERE YEAR(`date_column`)=2012 AND MONTH(`date_column`) BETWEEN 1 AND 6(更改为1月至5月的BETWEEN 1 AND 5 )
发布于 2012-01-19 18:20:42
如果您在PHP语言中生成SQL查询,则可以使用BETWEEN
$date = date("Y") . '-' . date("m") . '-01';
$sql = "SELECT *
FROM `table`
WHERE `date_column` BETWEEN '$date' AND '$date' + INTERVAL 1 MONTH - INTERVAL 1 DAY";(减去一天,剔除下个月第一天的数据)
或者,您可以使用EXTRACT
$month = 5;
$sql = 'SELECT *
FROM `table`
WHERE EXTRACT(MONTH FROM `date_column`) = ' . $month;发布于 2012-01-19 18:07:50
假设mysql中的列是正确的格式(date/datetime),您可以简单地比较(>,<):
SELECT somecolumn
FROM sometable
WHERE datecolumn >= '2012-01-01' AND datecolumn < '2012-06-01'希望它能帮上忙!
https://stackoverflow.com/questions/8924121
复制相似问题