MySQL:多个where子句,用于检测给定日期的月份和年份

时间:2015-07-29 15:19:38

标签: php mysql

我在这里挖掘了大量的问题,没有找到足够接近的SQL样本来获取我需要的信息。我使用MYSQL和PHP来跟踪日历情况下的特殊时间和事件。我想要从数据库中获取特定信息的月份和年份,我尝试的所有内容都不起作用。我还没有跟踪到目前为止我尝试过的所有内容,但它已经做了很多。我不想在测试中添加日期,因为我想单独查看每个月,而不是每天都要单独查询。

当前SQL

 SELECT *
    FROM LiveSpecialHours
        LEFT JOIN Libraries
            ON LibraryID = Libraries.id
        LEFT JOIN LibraryDepartment
            ON DepartmentID = LibraryDepartment.ldId
    WHERE (YEAR(2015-07-01) BETWEEN YEAR(startDate) AND YEAR(endDate))
    AND   (MONTH(2015-07-01) BETWEEN MONTH(startDate) AND MONTH(endDate)); 

1 个答案:

答案 0 :(得分:2)

根据要求将答案放在答案上。

如果“当前”表示“实际”,则(2015-07-01)将失败。 MySQL认为你想减去/ math。

('2015-07-01')用引号将它们包装成字符串文字,而不是数学问题(2015减去07减去01)。

检查错误,具体取决于您使用哪个MySQL API进行连接/查询(如果通过PHP完成)。

它会发出语法错误信号。

旁注:

如果您没有通过PHP查询,它也会通过phpmyadmin抛出语法错误(作为示例界面)。