2011-11-08 52 views
1

我希望我的winforms顯示當天的生日,但是我不確定如何比較當前日期和日期時間格式。例如,如果我的生日是1/1/1990,我想讓我的數據網格在2011年1月1日顯示我的信息。我不知道如何解析SQL中的日期;如果任何人都可以幫助我,那會很棒!SQL中的生日...無視年份的日期值

+0

請參閱 - http://stackoverflow.com/questions/23394947/sql-query-working-only-at-times –

回答

7

我想這應該給你一個好主意:

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

+1。我有一個巧妙的答案,使用JulianDate vie datepart(dayofyear ...),但它在閏年裏被焚燬。確保你的最終解決方案考慮到這一點! –

+0

謝謝,需要什麼 – willykao

0

使用傑米·F公司例如不同的方法。可能更多的索引友好,你不得不嘗試它,看看雖然。

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

另一種類似於第一種方式。

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