簡體   English   中英

按日期時間選擇新記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM