2014-01-09 141 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>這個問題是有道理的但是歐普問得不清楚.. –