Могу ли я использовать GetDate и DateAdd в операторе SQL Query Select Case? Часть моего запроса выглядит следующим образом, но только возвращает OVER60 в результате независимо от даты рождения Клиента. Есть ли лучший способ сделать это? Я новичок в этом, и это мой первый вопрос для Stack Overflow, поэтому я благодарю вас за любую проницательность.sql query case dateadd
SELECT G.ClientID, CONVERT(VARCHAR(10), ClientDob, 101) AS ClientDob
, CASE
WHEN (G.ClientDob > GETDATE() AND G.ClientDob < dateadd(year, -13, GetDate()))THEN 'Under13'
WHEN (G.ClientDob >= DATEADD(YEAR, -13, GETDATE()) AND G.ClientDob < DATEADD(year, -20, GETDATE()))THEN '13-19'
WHEN (G.ClientDob >= DATEADD(Year, -20, GETDATE()) AND G.ClientDob < DATEADD(Year, -30, GETDATE())) THEN '20-29'
WHEN (G.ClientDob >= DATEADD(YEAR, -30, GETDATE()) AND G.ClientDob < DATEADD(YEAR, -45, GETDATE())) THEN '30-44'
WHEN (G.ClientDob >= DATEADD(Year, -45, GETDATE()) AND G.ClientDob < DATEADD(YEAR, -60, GETDATE())) THEN '45-59'
Else 'OVER60'
END AS AgeCategory
Вы уверены, что это mysql? возможно, ms sql server? –
не должен 'G.ClientDob dateadd (год, -13, GetDate()))' dob 1/1/2014 <12/30/2014 да. 1/1/2014 <(1/1/2014-13) Нет ... так что теперь ни один из них не правдоподобен. Проще говоря логическая ошибка <должна быть> на второй эвале. –
xQbert
Да, возможно, но я думаю, что у вас есть> и <назад. –