2015-12-04 21 views
-1

顯示的記錄我用這個查詢:如何爲只有3天

function get_latest_news() 
    { 

    $sql = "SELECT TOP 5 * FROM ArkibBerita 
      WHERE code='BERITA' AND Enable = 'Y' AND Lang = 'EN' 
      ORDER BY position ASC"; 

    $query = $this->db->query($sql); 
    return $query->result(); 
    } 

對於每個記錄將只顯示3天。我可以知道如何查詢只顯示3天的數據嗎?

謝謝niena

+0

請張貼樣本數據和預期的結果。 –

+0

ArkibBerita中有BeritaDate列。 BeritaDate是將顯示新聞的開始日期。我只想從BeritaDate中只顯示3天的新聞。 –

+0

你有什麼約會嗎? –

回答

0

嘗試這樣

$sql = "SELECT TOP 5 * FROM ArkibBerita 
     WHERE code='BERITA' AND Enable = 'Y' AND Lang = 'EN' 
     AND BeritaDate >= NOW() - INTERVAL 3 DAY // <--- this line 
     ORDER BY position ASC"; 

$query = $this->db->query($sql); 
return $query->result(); 
+0

我認爲這會在日期前3天產生大於當前日期的所有beritadate記錄。 – mokNathal

0

嘗試這個

SELECT TOP 5 * FROM ArkibBerita 
WHERE code='BERITA' AND Enable = 'Y' AND Lang = 'EN' 
AND BeritaDate >= curdate() 
AND BeritaDate <= curdate() + INTERVAL 3 DAY 
ORDER BY position ASC 

OR

SELECT TOP 5 * FROM ArkibBerita 
WHERE code='BERITA' AND Enable = 'Y' AND Lang = 'EN' 
AND BeritaDate BETWEEN curdate() 
AND curdate() + INTERVAL 3 DAY 
ORDER BY position ASC