首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql在日期之间查找记录

mysql在日期之间查找记录
EN

Stack Overflow用户
提问于 2014-10-10 22:23:25
回答 2查看 38关注 0票数 0
代码语言:javascript
复制
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.endAS DATE ) > '2014-13-02',它可以工作,但我希望得到两个日期之间的结果。c.start和c.end的数据类型为DATETYPE。

有什么建议可以解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2014-10-10 22:30:10

我不确定为什么要将DATE类型转换为DATE类型,所以我在这里删除了它。您可以使用BETWEEN运算符检查您提供的日期是否在startend之间

代码语言:javascript
复制
WHERE 
    sh.speaker_id = 888 AND 
    xcb.brand_id = 27
    '2014-13-02' BETWEEN `c`.`start` AND `c`.`end`
票数 0
EN

Stack Overflow用户

发布于 2014-10-10 22:39:30

我假设你指的是DATETIME。所以只需使用DATE (c.Date)而不是"CAST( c.start AS start )“。还可以使用>=和<=来确保您将获得间隔的第一天和最后一天

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26301684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档