mysql
delete from info where UNIX_TIMESTAMP()-ADDTIME > BDAY*86400UNIX_TIMESTAMP() 返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。与php的time()相同
86400  24*60*60 一天的秒数若考虑到mysql数据库不与php在同一服务器上时可能有的时间差。则
mysql_query("delete from info where ".time()."-ADDTIME > BDAY*86400");

解决方案 »

  1.   

    直接用SQL可能不太好实现,自己写代码可以很简单的实现啊
    <?
    ...数据库连接代码略.....$sql = "select * from info";
    $res = mysql_query($sql,$conn); //$conn为数据库连接
    while($row = @mysql_fetch_arra($res))
    {
        /***假设你的ADDTIME的形式为2003-10-10***/
        $oldYear = substr($row[ADDTIME],0,4);
        $oldMonth = substr($row[ADDTIME],5,2);
        $oldDay = substr($row[ADDTIME],8,2);
        $tmpDays = (mktime(0,0,0,date("m"),date("d"),date("Y"))-mktime(0,0,0,$oldMonth,$oldDay,$oldYear))/(24*3600);
        if($tmpDays > $row[BDAY])
        {//大于保留天数,从数据库中删除数据
            $sql = "delete from info where id='$row[ID]'";
            $del_res = mysql_query($sql,$conn); //$conn为数据库连接
        }
    }...关闭数据库连接...
    ?>