首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -月份之间(而不是时间戳)

MySQL -月份之间(而不是时间戳)
EN

Stack Overflow用户
提问于 2012-01-19 18:02:51
回答 5查看 19.6K关注 0票数 1

我如何生成一个MySQL查询来抓取某个特定月份之间的行,例如,抓取一个月份介于01/01 (1月1日)和01/06 (6月1日)之间的行

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-19 18:07:59

我不确定,如果您想要抓取从1月到6月的所有行,只抓取6月1日之前的行或从1月到5月的所有行。例如,您可以使用:

代码语言:javascript
复制
[...] WHERE `date_column` BETWEEN '2012-01-01' AND '2012-06-01'

它给出了包括6月1日在内的所有行。

使用此命令可以获取从1月到6月的完整月份的所有行:

代码语言:javascript
复制
[...] WHERE YEAR(`date_column`)=2012 AND MONTH(`date_column`) BETWEEN 1 AND 6

(更改为1月至5月的BETWEEN 1 AND 5 )

票数 10
EN

Stack Overflow用户

发布于 2012-01-19 18:20:42

如果您在PHP语言中生成SQL查询,则可以使用BETWEEN

代码语言:javascript
复制
$date = date("Y") . '-' . date("m") . '-01';
$sql = "SELECT * 
FROM `table`
WHERE `date_column` BETWEEN '$date' AND '$date' + INTERVAL 1 MONTH - INTERVAL 1 DAY";

(减去一天,剔除下个月第一天的数据)

或者,您可以使用EXTRACT

代码语言:javascript
复制
$month = 5;
$sql = 'SELECT * 
FROM `table`
WHERE EXTRACT(MONTH FROM `date_column`) = ' . $month;
票数 4
EN

Stack Overflow用户

发布于 2012-01-19 18:07:50

假设mysql中的列是正确的格式(date/datetime),您可以简单地比较(>,<):

代码语言:javascript
复制
SELECT somecolumn 
FROM sometable
WHERE datecolumn >= '2012-01-01' AND datecolumn < '2012-06-01'

希望它能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8924121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档