按日期时间选择新记录

时间:2011-03-28 22:41:01

标签: php mysql

我正在尝试选择过去一年内有重新录制的记录

$goodate = date('Y-m-d h:i:s', mktime(0, 0, 0, date("m"),   date("d"),   date("Y")-1));
$sqlstmt = "SELECT * FROM #__mytable WHERE id=".$uid." AND recdate > ".$goodate.'"' ;

但我没有记录。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

$sqlstmt = "SELECT * FROM #__mytable
            WHERE id=".$uid."
              AND recdate > ADDDATE(CURDATE(), INTERVAL -1 YEAR)";

答案 1 :(得分:0)

如果您想以编程方式执行此操作,则DateTime对象是一个很棒的工具。

       $date = new DateTime();
       $gooddate = $date->sub(DateInterval::createFromDateString('1 year'));
       $sql = "SELECT * FROM #__mytable WHERE id=".$uid." AND recdate > ".$goodate->format('Y-m-d').'"';

这假设你的日期字段是mysql类型DATE。如果没有,则有类似的DateTime方法用于输出unix时间戳,format()方法接受date()所做的任何格式化字符串。

答案 2 :(得分:0)

$sql = "
select * 
from #__mytable
where 
    id = $uid
    and 
    date_format(recdate, '%Y') = date_format(adddate(curdate(), interval -1 year), '%Y')
"