我正在尝试选择过去一年内有重新录制的记录
$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.'"' ;
但我没有记录。
我做错了什么?
答案 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')
"