選擇新的記錄我想選擇,因爲他們過去一年通過日期時間
$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.'"' ;
內recdate記錄,但我發現沒有任何記錄。
我在做什麼錯?
選擇新的記錄我想選擇,因爲他們過去一年通過日期時間
$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.'"' ;
內recdate記錄,但我發現沒有任何記錄。
我在做什麼錯?
$sqlstmt = "SELECT * FROM #__mytable
WHERE id=".$uid."
AND recdate > ADDDATE(CURDATE(), INTERVAL -1 YEAR)";
如果要以編程方式執行此操作,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()
所做的任何格式化字符串。
$sql = "
select *
from #__mytable
where
id = $uid
and
date_format(recdate, '%Y') = date_format(adddate(curdate(), interval -1 year), '%Y')
"