比较日期时间字段(生日)与今天

时间:2014-01-09 09:26:37

标签: sql-server tsql

我有一个表格,其中有一个日期时间字段来保存个人的出生日期。

如何编写一个返回今天是个人生日的所有记录的查询?

2 个答案:

答案 0 :(得分:2)

只需将birthdate字段的月份和日期部分与当前日期的部分进行比较:

select * from person 
where datepart("month", birthdate) = datepart("month", getdate()) 
and datepart("day", birthdate) = datepart("day", getdate())

More information on DATEPART is here

答案 1 :(得分:1)

如果今天是他们的生日,您可以使用SQLServer的Datepart功能检查字段。

使用datepart,您可以获得完整日期的日期部分,如日,月和年。

在这里,您只需要比较日期和月份来检查今天是否过生日。

试试这个:

SELECT *
FROM table
WHERE DATEPART(d, @dob) = DATEPART(d, GETDATE())
    AND DATEPART(m, @dob) = DATEPART(m, GETDATE())

see demo