MySQL查询以获取开始日期和结束日期之间的结果

Dar*_*han 2 mysql sql

我说两个日期start_date = 2013-04-12end_date = 2013-04-30
并且我的表格包含带有start_date = 2013-04-12和的行end_date = 2013-04-16

我想获取记录的开始日期大于2013-04-12,而end_date小于2013-04-30。其中包括以2013-04-16作为结束日期的上述记录

我尝试过此查询

SELECT * FROM TABLE_NAME WHERE (start_date <='2013-04-12' AND end_date >='2013-04-30') 这没有给出任何结果但是,如果我把end_date 2013-04-15它工作正常

Bli*_*itZ 5

SELECT
    *
FROM
    (
        SELECT
            '2013-04-12' as `start_date`,
            '2013-04-16' as `end_date`
    ) `sub`
WHERE
    (`start_date` BETWEEN '2013-04-12' AND '2013-04-30')
    AND
    (`end_date` BETWEEN '2013-04-12' AND '2013-04-30')
Run Code Online (Sandbox Code Playgroud)

BETWEEN 更可靠