首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按年份和月份选择项目范围

问按年份和月份选择项目范围
EN

Stack Overflow用户
提问于 2014-08-21 22:48:31
回答 1查看 152关注 0票数 2

我正在尝试创建一个select语句,该语句按年份和月份获取项。

到目前为止,这就是我所拥有的:

代码语言:javascript
复制
SELECT * FROM sales WHERE YEAR(Date) = 2013 AND MONTH(?) = 'June'

我不能仅仅选择日期范围,因为不同的月份有不同的天数。根据月份的数目(即1月为1)或类似的方法来选择月份将是理想的。

这在mysql语句中是如何实现的?

这些字段是日期时间字段,如2012-12-01 00:00:00。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 22:52:04

看一看你的表演,然后把你的情况写成

代码语言:javascript
复制
SELECT * FROM sales 
WHERE 
    Date >= '2013-06-01 00:00:00' 
AND
    Date < '2013-07-01 00:00:00'

例如:2013年6月

因此,MySQL可以在列日期上使用索引。您将在2013年6月得到所有的日期行,甚至是第一秒的行,而不是2013年7月的第一秒钟的行。

您知道,您不需要知道特定月份的天数,因为您将永远使用两个月的头一个。

您也可以使用一些日期计算:

代码语言:javascript
复制
SELECT * FROM sales 
WHERE 
    Date >= '2013-06-01 00:00:00' 
AND
    Date < '2013-06-01 00:00:00' + INTERVAL 1 MONTH

所以你只需要知道间隔的开始和长度。

Note

我回答的最重要的部分是使用列Date,而不使用这个列上的函数,这样MySQL就可以使用索引。

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

https://stackoverflow.com/questions/25437148

复制
相关文章

相似问题

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