如何在mysql查询中过滤给定日期的数据

时间:2015-05-22 13:55:25

标签: php mysql codeigniter

我正在我的项目中创建一个搜索系统。我有一个"产品"表格和表格中我有一个日期字段,其中包含类似于2015-05-13'的值。在我的系统中,我有两个日期选择器用于选择两个日期之间进行搜索,如:From:2015-05-02 To:2015-05-14

我正在尝试根据所选日期创建查询,并且我在尝试执行此操作时遇到问题。有人可以解释一下如何做到这一点吗?

我试过这个:

SELECT * FROM `product`
 BETWEEN '2013-04-05' AND '2013-05-05'

3 个答案:

答案 0 :(得分:0)

您的查询无效的原因是您忘记包含SELECT [columns] FROM [table] WHERE [condition] 子句。虽然不是必需的,但许多MySQL查询都使用它。典型查询的格式可能是:

BETWEEN

你不仅直接跳到这个条件,而且你没有指定那些日期应该是SELECT * FROM product WHERE dateColumn BETWEEN '2013-04-05' AND '2015-05-05'; 的字段。您可以像这样重写您的查询:

SELECT Select_List
   FROM Table_List
   [WITH (BUFFERING = lExpr)]
   [WHERE Conditions]
   [GROUP BY Column_List]
   [UNION Clause]
   [HAVING Conditions]
   [ORDER BY Column_List]
   [INTO Clause | TO Clause ] 
   [Additional_Display_Options]

作为参考,您可以看到有关Apache's documentation page命令的此页面。他们有一个很好的例子,说明您可以添加到语句中的所有可能的子句。这是主要的摘要:

{{1}}

答案 1 :(得分:-1)

你非常接近:

SELECT *
FROM product
WHERE datefieldname BETWEEN '2013-04-05' AND '2013-05-05'

答案 2 :(得分:-1)

两种方式:

SELECT * FROM `product` where your_date_column  BETWEEN '2013-04-05' AND '2013-05-05'

SELECT * FROM `product` where your_date_column >= '2013-04-05' AND your_date_column < = '2013-05-05';