2011-02-25 84 views
0

例如,我通過管理員發佈新聞,並提及開始日期爲25-02-2011,結束日期爲28-02-2011。它將在2011年2月25日在用戶端顯示。MySql查詢以顯示時間條件的記錄

如果我通過管理員在開始日期發佈新聞作爲26-02-2011和結束日期爲28-02-2011,那麼它將顯示26- 02-2011。

如果我沒有在27-02-2011和28-02-2011上發佈任何內容,它應該顯示上次發佈的新聞。 就是在這種情況下,它應該顯示27-02-2011和28-02-2011在26-02-2011發佈的新聞。

編輯: 「SELECT ID,標題從新聞WHERE的startDate> = CURDATE()和
expiryDate < = CURDATE()和狀態= '主動' ORDER BY ID DESC」。當前有一條消息。它甚至不提取該記錄。要做什麼改變。

這怎麼可以用mysql來完成。

在此先感謝...

回答

0

如果這是你所談論的一個網站,請註明您所使用的服務器端技術。例如,它使用PHP? 因爲你所要求的,不能僅僅通過使用mysql來完成。

+0

MySQL有很多日期函數可以返回當前日期爲例,它是很容易寫一個日期過濾消息的查詢。 – krtek 2011-02-25 10:11:44

+0

問題是關於檢索和顯示新聞,這就是爲什麼我要求的語言。 – vimukthi 2011-02-25 10:19:18

+0

對於我剛纔檢索的案例來說已經足夠了...... – Fero 2011-03-09 11:22:11

0
select * from news where startdate >= now() and enddate <= now() limit 1 

您必須更改表和列的名稱。

+0

這段代碼不起作用 – Fero 2011-02-25 10:30:28

+0

就像我說的,你必須適應你自己的數據庫結構,最終到你的mysql版本。如果您提供更多信息,我可以爲您更新它。 – krtek 2011-02-25 10:36:04

0

看起來你剛剛混淆了操作符。 Today應該在startdate之後,不是嗎?

SELECT id, title FROM news WHERE startDate <= CURDATE() AND 
expiryDate >= CURDATE() AND status='Active' ORDER BY id DESC 
0

試試這個代碼:

SELECT id, title FROM news WHERE now() between startDate AND expiryDate AND status='Active' ORDER BY id DESC