Как я могу получить всех сотрудников, чей возраст будет 21 месяц? - PullRequest
2 голосов
/ 02 февраля 2012

Допустим, у меня есть таблица сотрудников со столбцами:

Id, Name, Birthdate

Я пытаюсь написать SQL-запрос для получения всех сотрудников, которым в месяц исполнится 21 год, и другой запрос для получения всех сотрудников, которым на данный момент 21 год.

Я использую Microsoft SQL Server 2008.

Ответы [ 3 ]

4 голосов
/ 02 февраля 2012

Я предполагаю, что вы хотите знать сотрудников как минимум 21 год, а не точно 21 год.

В течение одного месяца с этого момента:

WHERE BIRTHDATEField <= DATEADD(year, -21, DATEADD(month, 1 Getdate())

Удалите последний Dateadd для использования сегодня.

2 голосов
/ 02 февраля 2012

Попробуйте что-то вроде:

SELECT Name FROM Table 
WHERE DATEDIFF(YEAR, Birthdate, DATEADD(MONTH,1,GETDATE())) >= 21

и

SELECT Name FROM Table 
WHERE DATEDIFF(YEAR, Birthdate, GETDATE()) >= 21
1 голос
/ 02 февраля 2012
select *
from employee e
where e.Birthdate = DATEADD(Year, -21, DATEADD(MONTH, 1, GETDATE()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...