2013-02-19 42 views
1

查詢數據庫中,我有說12分的成績與列的數據庫名爲MYSQL - 如何通過時間

thread 

message 

time_posted 

有12個結果,它們都具有相同的thread女巫是1002

我試圖讓所有的結果後time_posted"2013-03-19 17:36:08"到來。 任何一方至少有4個參賽作品,所以我應該得到4個參賽作品。

到目前爲止,我已經嘗試過的所有事情,我都收到了一個空數組,或者除了有2013-03-19 17:36:08作爲時間戳的行之外,我得到了一切。

這是我曾嘗試:

public function get_messages($thread){ 

     $time = '2013-03-19 17:36:08'; 

     $statement = $this->database->prepare("SELECT * FROM chat WHERE thread = ? AND time_posted > '$time'"); 

     $statement->bindParam(1, $thread); 

     $statement->execute(); 

     $this->result = $statement->fetchAll(PDO::FETCH_ASSOC); 

     return $this->result; 

    } 

我已提前與兩個< AND>

感謝嘗試過的任何幫助。

一切順利。

康納

+2

是那些字段定義爲在MySQL'DATETIME' /'TIMESTAMP'?如果它們是'VARCHAR'或其他數據類型,這將不起作用。 – 2013-02-19 21:17:47

+0

的time_posted是TIMESTAMP對不起 – iConnor 2013-02-19 21:18:09

+0

當你在你的數據庫shell中運行你的SQL會發生什麼?有沒有結果? – dm03514 2013-02-19 21:20:20

回答

1

試試這個:

$time = '2013-03-19 17:36:08'; 

    $statement = $this->database->prepare("SELECT * FROM chat WHERE thread = ? AND time_posted >= STR_TO_DATE(?, '%Y-%m-%d %H:%i:%s')"); 

    $statement->bindParam(1, $thread); 
    $statement->bindParam(2, $time); 

    $statement->execute(); 
+0

回報什麼,我將採取的截圖我db現在 – iConnor 2013-02-19 21:23:35

+0

@ConnorMiles對不起,它是時間戳,而不是unixtimestamp!查看更新的答案。 – 2013-02-19 21:25:33

+0

沒有沒有工作,如果我改變了>至<然後將其輸出的一切,但該行與time_posted如2013年3月19日17時36分08秒 – iConnor 2013-02-19 21:29:12