Дни рождения в SQL ... игнорировать год в значении даты - PullRequest
1 голос
/ 09 ноября 2011

Я хочу, чтобы мои winforms отображали дни рождения в эту дату, однако я не уверен, как сравнить текущую дату и формат даты и времени.Например, если мой день рождения был 01.01.1990, я хочу, чтобы моя таблица данных показывала мою информацию 01.01.2011.Я не уверен, как разобрать дату в SQL;если кто-нибудь может мне помочь, это было бы здорово!

Ответы [ 3 ]

7 голосов
/ 09 ноября 2011

Я думаю, что это должно дать вам хорошую идею:

SELECT
   *
FROM
   Users
WHERE
   MONTH( Users.Birthdate ) = MONTH( GetDate() )
   AND
   DAY( Users.Birthdate ) = DAY( GetDate() )
1 голос
/ 09 ноября 2011

Еще один способ, похожий на первый.

SELECT * FROM Users WHERE
 DatePart(d, Users.Birthdate) = DatePart(d, GetDate() )
 AND
 DatePart(m, Users.Birthdate ) = DatePart(m, GetDate() )
0 голосов
/ 09 ноября 2011

Другой подход на примере Джейми Ф. Потенциально более дружественный к индексам, вам придется попробовать и посмотреть.

SELECT
  *
FROM
  Users
WHERE
  DATEADD(YEAR, -DATEDIFF(YEAR, 0, Users.Birthdate), Users.Birthdate)
  =
  DATEADD(YEAR, -DATEDIFF(YEAR, 0, GetDate()      ), GetDate()      )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...