Datepart возвращает другой день года для одной и той же даты рождения?
Всем Привет
Я запрашиваю игроков, чей день рождения наступит в течение следующих 7 дней в Sql server
select TOP 100 Percent PlayerID from vwPlayer WITH(NOLOCK) where ISDATE(answer)=1 AND datepart(dy,CONVERT(datetime,Answer)) > DatePart(dy,GetDate()) AND datepart(dy,CONVERT(datetime,Answer)) < DatePart(dy,DateAdd(dy,7,GetDate()))
но результаты не согласуются как
print datepart(dy,'09/01/1999')--244 print datepart(dy,'09/01/2000')--245 print datepart(dy,getdate()) -- 245
Так,
DatePart function returning different day of the year for same birthdate
Как точно запросить игроков, чей день рождения наступит в течение следующих 7 дней
Спасибо!
Что я уже пробовал:
Вычислите день года по дате рождения игрока и проверьте, лежит ли он в currentdate и currentdate + 7 дней
но datepart возвращает другой номер дня для одной и той же даты рождения 09/01/1999 и 09/01/2000
Mehdi Gholam
Попробуйте формат гггг-ММ-ДД, например, 1999-09-01