SELECT * FROM TABLENAME WHERE TIMEFIELD >= ADDDATE(DATE_FORMAT(NOW(), '%Y-%c-%d'), INTERVAL 12 DAY_HOUR) AND TIMEFIELD < ADDDATE(DATE_FORMAT(NOW(), '%Y-%c-%d'), INTERVAL 36 DAY_HOUR);

解决方案 »

  1.   

    我的意思是根据访问时间(now())来搜索数据库中符合当天日期的记录。
    当天日期的定义为:每天的中午12点到第二天的中午12点,如果now()超过晚上12点(如02:00),那当天日期是昨天中午12点到今天中午的12点。
      

  2.   

    我想在php中计算time()来确定时间范围,但比较麻烦,要判断当前时间的小时和日期部分,再来计算时间范围是多少。这样虽然可以做到,但感觉好烦,哪位高手有方便一点的办法?
      

  3.   

    用这段代码吧。。$nowtime=gettimeofday();
    $thistime=$nowtime["sec"];
    $ttime=$nowtime["sec"]+86400;
    $thisday=date("Y-m-j",$thistime). " 12:00:00";//今天12点
    $tday=date("Y-m-j",$ttime)." 12:00:00";//明天12点或者你把它做成一个函数也行。。
      

  4.   

    uGain(uGain.org) :
    你好,我还没有试,现在没有数据,你能解释一下时间加减的意思吗?
      

  5.   

    DATE_FORMAT(NOW(), '%Y-%c-%d')
    得到当前的日期,返回2004-12-01ADDDATE(DATE_FORMAT(NOW(), '%Y-%c-%d'), INTERVAL 12 DAY_HOUR)
    得到当天12点的时间,返回2004-12-01 12:00:00ADDDATE(DATE_FORMAT(NOW(), '%Y-%c-%d'), INTERVAL 36 DAY_HOUR)
    得到第二天12点的时间,返回2004-12-02 12:00:00
      

  6.   

    SELECT * FROM TABLENAME WHERE TIMEFIELD >= ADDDATE(DATE_FORMAT(ADDDATE(NOW(), INTERVAL -12 DAY_HOUR), '%Y-%C-%D'), INTERVAL 12 DAY_HOUR) AND TIMEFIELD < ADDDATE(DATE_FORMAT(ADDDATE(NOW(), INTERVAL -12 DAY_HOUR), '%Y-%C-%D'), INTERVAL 36 DAY_HOUR);取得当前时间NOW()-12小时的时间得到你要求的日期.
    如,2004-12-02 09:12:10减12小时后为2004-12-01 21:12:10,得到日期为2004-12-01,再得到以这个日期为基础的时间范围。2004-12-01 12:00:00 到 2004-12-02 12:00:00