每年如何查询一系列日期?

时间:2018-07-16 20:30:32

标签: mysql sql

使用以下结构以一对多关系给出表resumesexperiences

resumes

  id int
  title varchar(255)

experiencies

  id int
  resume_id int
  from_date datetime
  to_date datetime

我尝试获取经验表中字段from_dateto_date的值介于参数年份之间的所有简历

我在结构上附加了sqlfidlle

例如,给定以下数据

表格恢复 enter image description here

表体验 enter image description here

如果参数为2010,则我期望的结果是ID为1和2的简历。

1,因为尽管与履历1相关的其他经历不在2010年,但第1行的经历是在2010年。而2因为在2010年是在2008年至2018年之间

预先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以使用Year函数从日期列获取年份,并应用如下所示的where子句-

select * 
from experiencies 
where year(from_date) <= 2010 and year(to_date) >= 2010 

您也可以在where子句中使用BETWEEN

SET @Param = 2010
select * 
from experiencies 
where @Param between year(from_date) and year(to_date)