免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1733 | 回复: 8
打印 上一主题 下一主题

【讨论中】mysql查询条件匹配 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-27 10:55 |只看该作者 |倒序浏览
本帖最后由 cenalulu 于 2012-07-27 17:37 编辑

table内容:

id             order_time                 operation
1      2012-07-26   10:01:53               删除
2      2012-07-26   15:33:23              添加
3      2012-07-27   01:22:36             添加


查询语句
select  * from table where order_time >= '20120726' and order_time <= '20120726 23:59:59'

因为是shell调用的,所以之前‘20120726’这个是由变量获取的
ystDate=`date --date='1 days ago' +%Y%m%d`

之前变量中日期忘加上“-”

原shell指令
-e "select  *  from table where order_time >= '$ystDate' and order_time <= '$ystDate 23:59:59'"

但为何这样的查询条件会匹配到第三条记录呢?

论坛徽章:
0
2 [报告]
发表于 2012-07-27 11:19 |只看该作者
回复 1# xiaogui_vip


    啥情况??


   自己顶一次~~~

论坛徽章:
0
3 [报告]
发表于 2012-07-27 16:06 |只看该作者
你用between不行吗

论坛徽章:
0
4 [报告]
发表于 2012-07-27 16:09 |只看该作者
回复 3# lien5


    请看清问题,现在不是解决问题的,是疑问为什么这样的语句会有那样的效果??

论坛徽章:
0
5 [报告]
发表于 2012-07-27 16:10 |只看该作者
同时在告诉你一个,一定要记得加上日期之间的哪个横扛,不然,它只是提取日期,不会进行时间对比。

论坛徽章:
0
6 [报告]
发表于 2012-07-27 16:17 |只看该作者
回复 4# xiaogui_vip


一定要记得加上日期之间的哪个横扛,不然,它只是提取日期,不会进行时间对比。

在有时间的时候,格式要正确,如果你的日期里没有时间,可以不加,会自动转化。

   

论坛徽章:
0
7 [报告]
发表于 2012-07-27 18:24 |只看该作者
ystDate=`date --date='1 days ago' +%Y%m%d`
ystDate2=`date --date='0 days ago' +%Y%m%d`

之前变量中日期忘加上“-”

原shell指令
-e "select  *  from table where order_time >= $ystDate and order_time <=$ystDate2"

论坛徽章:
0
8 [报告]
发表于 2012-07-31 17:24 |只看该作者
回复 6# lien5


    照你这样说的,如果yesterday为2012-07-31,那应该只匹配31号是吗?
   
   如果你回答是,那么事实结果又和你说的不统一,又是怎么回事?

   现在的结果是查询的结果包含yesterday+1day的记录(从结果中来看,只有0点多的)

论坛徽章:
0
9 [报告]
发表于 2012-07-31 17:25 |只看该作者
回复 7# rucypli


    “<=”  是肯定会包含你第二个变量的时间的,这样的查询结果是达不到初衷的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP