获取特定月份和年份的所有行

时间:2015-02-26 16:31:30

标签: php mysql datetime

我有一个PHP scirpt,总是查询数据库表中的所有数据,而且它变得非常慢。我真的只需要特定月份和年份的数据。

是否有一种简单的方法可以获得这些条目?例如,2013年2月的所有内容?

如果适用于解决方案,那么在我的表中存储日期的列的类型为datetime

2 个答案:

答案 0 :(得分:2)

您可以在select语句的WHERE子句中添加该条件。我建议在两个日期使用BETWEEN操作数:

SELECT myColumns
FROM myTable
WHERE dateColumn BETWEEN '2013-02-01' AND '2013-02-28';

如果您的意思是说您想要从2013年2月开始的所有内容,您可以使用大于或等于运算符来执行此操作:

SELECT myColumns
FROM myTable
WHERE dateColumn >= '2013-02-01';

修改

虽然以上是我首选的方法,但我想补充一点,MySQL还提供了抓取日期特定部分的功能。如果您想创建一个参数化查询,您可以将月份和年份作为整数传递(而不是开始日期和结束日期),您可以像这样调整查询:

SELECT myColumns
FROM myTable
WHERE MONTH(dateColumn) = 2 AND YEAR(dateColumn) = 2013;

以下是一大堆有用的date and time functions

答案 1 :(得分:0)

您应该将datetime字段编入索引以提高效率,然后在sql中使用Between语法。这将允许mysql引擎从返回的数据集中删除您不感兴趣的所有记录。