![](/img/trans.png)
[英]selecting records based on datetime column changes the data in the datetime column ..very strange
[英]Selecting new records by datetime
我正在嘗試選擇在過去一年內有記錄的記錄
$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.'"' ;
但我沒有任何記錄。
我究竟做錯了什么?
$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')
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.