2014-01-09 149 views
-1

我有一个表中有一个日期时间字段来保存个人的出生日期。比较日期时间字段(对于生日)与今天

我怎么能写返回所有记录,其中今天是个人的生日查询?

+0

你的意思是选择其b'day是今天所有领域? –

+1

请显示你已经尝试和任何错误http://stackoverflow.com/questions/how-to-ask – Liath

回答

2

刚出生日期字段的月份和日期部分比较那些从当前日期:

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

More information on DATEPART is here

1

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

使用日期部分,你可以得到这样的日,月,年的完整日期的日期部分。

在这里你只需要比较一下日月是否今天是生日。

试试这个:

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

see demo

+2

+1 ..盲目回答并给小提琴演示:D – 2014-01-09 10:02:45

+1

@george>这个问题是有道理的但是欧普问得不清楚.. –