2012-04-03 66 views
0

我想查找註冊日期等於4-22的人的數據庫表。通過數據庫搜索失敗

我的SQL將類似於這樣

function GetUsers($dreg) 
{ 
    $dt=(new DateTime($dreg))->format('Y-m-d'); 
    $result=$this->query("SELECT * FROM tablex WHERE dreg='$dt'"); 
    return ($this->getNumRows()>0)?$result:null; 
} 

的東西。但是SQL證明不正確,因爲我需要得到的只有一個月,當僱員一年未註冊的日子。

回答

2

你要比較公正日期和月份而不是整個日期:

function GetUsers($dreg) 
{ 
    $dt=(new DateTime($dreg))->format('m-d'); 
    $result=$this->query("SELECT * FROM tablex WHERE DATE_FORMAT(dreg, '%m-%d') = '$dt'"); 
    return ($this->getNumRows()>0)?$result:null; 
} 
+0

@Dust,沒有關於MySQL的日期格式字符串錯誤,請檢查更新的代碼。 – bfavaretto 2012-04-03 03:33:41

+0

謝謝你,你告訴我功能和使用方法,其餘的我會盡力修復自己。再次感謝。 – 2012-04-04 02:15:01

0

您可以將日期的兩邊轉換爲字符串,然後進行比較。