数据库结构如下。
-----------------------------------
| product | start_year | end_year |
-----------------------------------
| prod_1 | 2001 | 2005 |
| prod_2 | 2002 | 2010 |
| prod_3 | 2003 | |
| prod_4 | 2004 | 2016 |
| prod_5 | 2005 | |
| prod_6 | 2005 | 2015 |
-----------------------------------
某些字段" end_year"为空,空白单元格表示当前年份。 我有一个参数年份,我希望收到年份介于两个日期(start_year和end_year)之间的记录。
我可以使用此查询,但遗憾的是空单元格存在问题:
select * from table where 2003 between start_year and end_year;
答案 0 :(得分:1)
答案 1 :(得分:0)
您的意思是您希望结束数据列的记录没有值,并将日期作为值开始。
SELECT product FROM table WHERE start_year='2003' and(end_year IS NULL OR end_year = '');
答案 2 :(得分:0)
您可以检查start_year
是否大于或等于searchyear
并检查end_year
是否小于或等于searchyear
或者end_year是{{1 }}
NULL