我有一个SQL数据库。这里有一个名为Reports
的表,它看起来像这样
ID Date Year Title Links
1 2010-05-03 2010 Report 1 link1.php
2 2010-09-03 2010 Report 2 link2.php
3 2011-01-05 2011 Report 3 link3.php
我正在努力实现这一目标。我想选择2010-2011的所有报告,但2010年的报告可能只是9月份的报告。
现在,我已经有一份SQL语句选择了两年的所有报告
$sql = "SELECT * FROM Reports WHERE Year = ".$db->escape($jaar1)." OR jaar = ".$db->escape($jaar2);
如何选择Report 2
(因为它的日期是2010年9月)和Report 3
(因为它的日期是2011年)?
答案 0 :(得分:1)
我认为最简单的方法是使用BETWEEN...AND
运算符。
SELECT *
FROM `Reports`
WHERE `Date` BETWEEN '2010-09-01' AND NOW()
注意反引号。在Date
附近特别重要,因为它是一个保留词。
答案 1 :(得分:1)
假设Date
列的类型为DATE
:
SELECT *
FROM `Reports`
WHERE (YEAR(`Date`) = 2010 AND MONTH(`Date`) = 9)
OR YEAR(`Date`) = 2011
答案 2 :(得分:0)
一般模式
where year = 2011
or ( year = 2010 and month = 'September' )