过滤人们在那个月过生日的年龄

时间:2017-07-27 07:17:12

标签: sql tsql date

我有一个日期参数,我需要用它来查看我们的数据库中有多少人在6岁以下或者在与参数同月的6个月。

这是我的开始。 (2017-07-02参数日期)

SELECT a.name,a.firstname,a.birthday FROM adress a 
WHERE a.birthday >= dateadd(year,-6, { d '2017-07-02'})

我的问题是我需要回归那些在2011-07赛季中排名第6的人。选择我有atm我只能得到6月份生日2017-07-01或2017-07-02的人。

我怎么能很好地做到这一点?

2 个答案:

答案 0 :(得分:1)

解决了,谢谢

SELECT a.name,a.firstname,a.birthday FROM adress a 
WHERE a.birthday >= dateadd(year,-6, EOMONTH({ d '2017-07-02'}))

答案 1 :(得分:0)

试试这个:

 SELECT a.NAME, 
        a.firstname, 
        a.birthday 
 FROM   adress a 
 WHERE  Datename(mm, birthday) = Datename(mm, Getdate()) 
        AND Datename(yy, birthday) < Datename(yy, Getdate()) 
        AND Datename(dd, birthday) >= Datename(dd, Getdate())