优雅de程序员 2016-05-27 07:14 采纳率: 0%
浏览 2035
已结题

mysql查询时间问题,两个相同的sql查询出来的结果不同,这两个sql有什么区别呀

SELECT COUNT(DISTINCT ca_user_id) from order_info_ref where order_time>='2015-01-01' and order_time <='2015-01-04';

SELECT COUNT(DISTINCT ca_user_id) from order_info_ref where DATE_FORMAT(order_time,'%Y-%m-%d')>='2015-01-01'
and DATE_FORMAT(order_time,'%Y-%m-%d')<='2015-01-04' ;

数据库有两百多万条数据,通过第一种方式查询 返回的结果有三十多万条数据,通过第二种方式查询返回的接口有四十多万条数据,不知道是什么原因!

  • 写回答

2条回答 默认 最新

  • CS568591377 2016-05-27 07:22
    关注

    区别在于
    order_time <='2015-01-04'; 所有时间超过2015-01-04是不符合查询区间


    DATE_FORMAT(order_time,'%Y-%m-%d')<='2015-01-04' ;恰恰相反

    刚好隔了2015-01-04这一天的数据

    评论

报告相同问题?