数据库结构如下:
| bid            | int(10)             | NO   |     | 0       |                |
| bname          | varchar(50)         | NO   |     |         |                |
| endtime        | int(11)             | NO   |     | 0       |                |
+----------------+---------------------+------+-----+---------+----------------+endtime里存的是时间戳,现在想查endtime与当前时间的间隔小于等于3天的查出来,不知这样的where应该如何写呢?

解决方案 »

  1.   

    endtime 不是datetime类型?你怎么存。
    是datetime就简单。select * from table where endtime<=adddate(Now(),3) and endtime >=adddate(Now(),-3);
      

  2.   


    select * from tablename where datediff(now(),from_unixtime(endtime)) <=3 ;
      

  3.   

    骑着上帝看戏,又看见你了,呵呵
    datediff(now(),from_unixtime(endtime)) <=3这个我试过了,endtime如果不是字段名没问题,但它是字段名,就取不到时间
      

  4.   


    CREATE TABLE IF NOT EXISTS `fz_shop` (
      `sid` int(10) NOT NULL AUTO_INCREMENT COMMENT '店铺ID',
      `bid` int(10) NOT NULL DEFAULT '0' COMMENT '品牌ID',
      `uid` int(10) NOT NULL,
      `bname` varchar(50) NOT NULL COMMENT '品牌名称',
      `starttime` int(10) NOT NULL DEFAULT '0' COMMENT '开通时间',
      `endtime` int(11) NOT NULL DEFAULT '0' COMMENT '付费到期时间',
      `isstop` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0待开通,1开通,2停止,3强制停止',
      PRIMARY KEY (`sid`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;--
    -- 导出表中的数据 `fz_shop`
    --INSERT INTO `fz_shop` (`sid`, `bid`, `uid`, `bname`, `starttime`, `endtime`, `isstop`) VALUES
    (17, 1, 31, '金牌七匹狼', 1197993600, 1228406400, 1),
    (18, 0, 32, 'aaa', 0, 0, 1);
      

  5.   

    我本机上的运行结果:
    select * from fz_shop where datediff(now(),from_unixtime(endtime)) <=3 ;query result(1 records)
    sid bid uid bname starttime endtime isstop 
    17 1 31   1197993600 1228406400 1