簡體   English   中英

mysql查找日期之間的記錄

[英]mysql find record between dates

SELECT 
    amount, 
    rh.honoraria_key, 
    rh.honoraria_name
FROM 
    xref_speaker_honoraria sh
    INNER JOIN xref_contract_speaker xcs ON (
        sh.contract_id = xcs.contract_id)
    INNER JOIN xref_contract_bureau xcb ON (
        xcs.contract_id = xcb.contract_id)
    INNER JOIN ref_contract c ON ( xcs.contract_id = c.contract_id )
    INNER JOIN ref_honoraria rh ON (
        sh.honoraria_id = rh.honoraria_id AND 
        rh.display_ext>0)
WHERE 
    sh.speaker_id = 888 AND 
    xcb.brand_id = 27
    AND CAST( c.`start` AS DATE ) < '2014-13-02' 
    AND CAST( c.`end` AS DATE ) > '2014-13-02' 
GROUP BY
    rh.honoraria_key
ORDER BY 
    rh.display_ext

我有上述查詢,由於日期問題,它沒有返回結果。 如果我刪除AND CAST( c. AS DATE ) > '2014-13-02'則可以,但是我想在兩個日期之間得到結果。 c.start和c.end的DATA類型為DATETYPE。

有任何解決辦法嗎?

我不確定為什么要將DATE類型轉換為DATE類型,因此在此已將其刪除。 您可以使用BETWEEN運算符來檢查您提供的日期在startend之間

WHERE 
    sh.speaker_id = 888 AND 
    xcb.brand_id = 27
    '2014-13-02' BETWEEN `c`.`start` AND `c`.`end`

我認為您的意思是DATETIME。 因此,只要使用日期(約start ),而不是“CAST(C。 start AS DATE)”。 並使用> = AND <=來確保您將獲得間隔的第一天和最后一天

暫無
暫無

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

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