DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(FROM_UNIXTIME(zxgl_yytime))
zxgl_yytime 字段是存时间戳的 查询最近30天为什么查出来的数据是 
从上个月16号开始 时间结束是到最远的时间 而不是今天结束
但是我换个时间字段查询又是正确的
只能这样才能查出准确的
 DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(FROM_UNIXTIME(zxgl_yytime)) AND date(FROM_UNIXTIME(zxgl_yytime))<=DATE_FORMAT(now(),'%Y-%m-%d') 

解决方案 »

  1.   

    帖一下完整的sql
      

  2.   


    select *,(select u_name from tp_user e where e.u_id=b.zxgl_lrname) as u_name,(select zx_name from tp_zxyytype a where a.zx_id=b.zxgl_mj) as zx_name,(select bz_name from tp_bzgl d where d.bz_id=b.zxgl_ksid) as ks_name,(select bz_name from tp_bzgl f where f.bz_id=b.bz_id) as bz_name,(select hp_yyname from tp_hospitalp c where c.hp_id=b.hp_id ) as hp_yyname  from tp_zxyygl b where hp_id in (1,2,3,4,6,7,8,9,10,11,12) AND DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(FROM_UNIXTIME(zxgl_yytime)) AND date(FROM_UNIXTIME(zxgl_yytime))<=DATE_FORMAT(now(),'%Y-%m-%d') order by b.zxgl_yytime  这是完整的一条
     查最近30天
      

  3.   

    select * from 表名 where datediff(now(),zxgl_yytime)<=30