簡體   English   中英

在mysql中獲取最近的下一個日期記錄

[英]get nearest next one date records in mysql

我有一個事件表。我今天使用顯示事件。
SELECT * FROM `special_banner_tbl` WHERE `SPLBANNER_pubsdate` = current_date

如果今天沒有事件,則必須顯示更接近當前日期的未來日記錄。
如果表喜歡..
------------------
future_date
------------------
30-11-2013
30-11-2013
2013年2月12日
2013年3月12日
2013年3月12日
----------------------
它將顯示下一個最近的日期30-11-2013記錄..喜歡。

SELECT * FROM `special_banner_tbl` WHERE `SPLBANNER_pubsdate` = nest_nearest_date_records

只有一個最近的未來日期記錄沒有任何限制 喜歡
--------------- --------------
事件未來日期
--------------- ----------------
30日活動30-11-2013
30日活動30-11-2013
------------------------------

無論如何,我會為這個案例寫兩個單獨的查詢,但這也可以正常工作:

SELECT 
    *
FROM special_banner_tbl
WHERE SPLBANNER_pubsdate = CURRENT_DATE

UNION ALL 
SELECT 
    *
FROM special_banner_tbl
WHERE 
    (SELECT COUNT(*) 
    FROM special_banner_tbl 
    WHERE SPLBANNER_pubsdate=CURRENT_DATE) = 0 
    AND 
    SPLBANNER_pubsdate = (
        SELECT MIN(SPLBANNER_pubsdate) 
        FROM special_banner_tbl 
        WHERE SPLBANNER_pubsdate > CURRENT_DATE 
        ORDER BY SPLBANNER_pubsdate
        LIMIT 1
    )

您需要或SPLBANNER_pubsdate> current_date用於未來日期和SPLBANNER_pubsdate ASC的訂單,因此如果沒有找到當前日期的事件,它將具有未來事件(如果找到)則首先列出當前事件

SELECT * FROM `special_banner_tbl` WHERE `SPLBANNER_pubsdate` = current_date
OR `SPLBANNER_pubsdate` > current_date ORDER BY `SPLBANNER_pubsdate` ASC
 LIMIT 0 , 30

實際上你要做的就是利用今天和未來之間的差異。 然后你必須通過這個差異來提升你的數據。

希望我幫忙!

嘗試這個 :

SELECT 
  * 
FROM 
  `special_banner_tbl`
ORDER BY 
  ABS(DATEDIFF(NOW(), `SPLBANNER_pubsdate`))
LIMIT 10
SELECT * FROM `jsproduct_company`
WHERE future_date > NOW()
LIMIT 1;

您可以通過上述查詢找到確切的下一個日期記錄。

SELECT *
FROM `special_banner_tbl`
WHERE `SPLBANNER_pubsdate` >= CURDATE()
ORDERBY `SPLBANNER_pubsdate` asc
LIMIT 1 

如果您的字段SPLBANNER_pubsdate將包含完整的日期時間值(而不是日期值),則必須稍微更改where子句,以隔離日期:

SELECT *
FROM `special_banner_tbl`
WHERE DATE(`SPLBANNER_pubsdate`) >= CURDATE()
ORDERBY `SPLBANNER_pubsdate` asc
LIMIT 1 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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