假设我有一个包含列的员工表:
Id, Name, Birthdate
我正在尝试编写SQL查询来检索一个月内将是21的所有员工,以及另一个查询以检索当前21的所有员工。
我正在使用Microsoft SQL Server 2008。
我假设您想要了解至少21岁的员工,而不是21岁。
从现在起一个月:
WHERE BIRTHDATEField <= DATEADD(year, -21, DATEADD(month, 1 Getdate())
删除今天使用的最后一个Dateadd
。
尝试类似的东西:
SELECT Name FROM Table
WHERE DATEDIFF(YEAR, Birthdate, DATEADD(MONTH,1,GETDATE())) >= 21
和
SELECT Name FROM Table
WHERE DATEDIFF(YEAR, Birthdate, GETDATE()) >= 21
select *
from employee e
where e.Birthdate = DATEADD(Year, -21, DATEADD(MONTH, 1, GETDATE()))