SQL中的生日...忽略日期值中的年份

时间:2011-11-08 23:22:35

标签: sql winforms visual-studio-2010 sql-server-2008

我希望我的winforms在该日期显示生日,但我不确定如何比较当前日期和日期时间格式。例如,如果我的生日是1/1/1990,我希望我的数据网格在2011年1月1日显示我的信息。我不确定如何解析SQL中的日期;如果有人能帮助我那会很棒!

3 个答案:

答案 0 :(得分:7)

我认为这应该给你一个好主意:

SELECT
   *
FROM
   Users
WHERE
   MONTH( Users.Birthdate ) = MONTH( GetDate() )
   AND
   DAY( Users.Birthdate ) = DAY( GetDate() )

答案 1 :(得分:1)

另一种类似于第一种方式。

SELECT * FROM Users WHERE
 DatePart(d, Users.Birthdate) = DatePart(d, GetDate() )
 AND
 DatePart(m, Users.Birthdate ) = DatePart(m, GetDate() )

答案 2 :(得分:0)

使用Jamie F的例子的另一种方法。可能更友好的索引,你必须尝试看看。

SELECT
  *
FROM
  Users
WHERE
  DATEADD(YEAR, -DATEDIFF(YEAR, 0, Users.Birthdate), Users.Birthdate)
  =
  DATEADD(YEAR, -DATEDIFF(YEAR, 0, GetDate()      ), GetDate()      )