SQL datediff - 比...更老的人

时间:2018-02-12 20:54:56

标签: sql sql-server

我有一个名为member的SQL表,其中我有成员信息,并且在该信息中有他们的出生日期。

我需要列出25岁以上的所有人。现在,我得到了这个:

SELECT * FROM members
WHERE DATEDIFF(year, birthday, GETDATE() ) > 25

唯一的问题是它没有考虑到今年年满25岁的所有人......

如何添加今年1月和2月年满25岁的所有人?

有人能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

不要使用datediff()。只需减去当前日期的年份:

where birthday < dateadd(year, -25, getdate())

答案 1 :(得分:1)

尝试将25年添加到他们的生日,然后比较现在。如果&lt; =,则他们年龄超过25岁。

SELECT * 
    FROM members
    WHERE DATEADD(year, 25, birthday) <= getdate()