首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sql查询中使用where子句和日期范围

问在sql查询中使用where子句和日期范围
EN

Stack Overflow用户
提问于 2011-10-04 23:17:51
回答 5查看 853关注 0票数 0

当我想要返回某个字段中包含特定单词且在某个日期范围内的结果时,我在执行查询时遇到了问题。我现在使用的查询是:

代码语言:javascript
复制
        $month_no = date('m');
        $month_day = date('d');         
        $query="SELECT * FROM `table` WHERE ((user_purchased LIKE '%john%') AND (request_date BETWEEN '2011-$month_no-$month_day' AND '2011-$month_no-$month_day')) ";
        $result = mysql_query($query);
        $num_rows = mysql_num_rows($result);  echo $num_rows;

我在'request_date字段中的日期格式如下: 2011-10-03 12:30:34

你知道我做错了什么吗?

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-04 23:20:45

如果您尝试执行以下操作会发生什么:

代码语言:javascript
复制
BETWEEN '2011-$month_no-$month_day 00:00:00' AND
'2011-$month_no-$month_day 23:59:59')) ";
票数 1
EN

Stack Overflow用户

发布于 2011-10-04 23:23:10

如果您的日期范围是相同的,为什么不尝试

代码语言:javascript
复制
... WHERE (DATE(requested_date) = "2011-$month_no-$month_day")
票数 0
EN

Stack Overflow用户

发布于 2011-10-04 23:27:03

胡乱猜测,因为我只知道如何在Oracle DB中执行此操作-在那里,您将使用*to_date*函数,如

代码语言:javascript
复制
  ... WHERE date = TO_DATE('20110820','YYYYMMDD') ... 

或

代码语言:javascript
复制
  ... WHERE (date => TO_DATE('20110801','YYYYMMDD')) AND (date <= TO_DATE('20110831','YYYYMMDD')) 

也许检查一下mysql是否也需要这样的函数调用是值得的。

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

https://stackoverflow.com/questions/7650165

复制
相关文章

相似问题

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