SQL Query Select Case 문에서 GetDate 및 DateAdd를 사용할 수 있습니까? 내 쿼리의 일부는 다음과 같습니다. 그러나 클라이언트의 생년월일에 관계없이 결과로 OVER60 만 반환합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 나는 초보자이며 Stack Overflow에 대한 나의 첫 번째 질문이므로 어떤 통찰력에도 감사드립니다.sql 쿼리 케이스 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이라 확신합니까? 어쩌면 석사 SQL 서버? –
은 'G.ClientDob> dateadd (year, -13, GetDate()))'do 2012 년 1 월 1 일 <12 월 1 일에'G.ClientDob 으로 설정하십시오. –
xQbert
예, 가능 합니다만,> 및 <거꾸로 한 것 같습니다. –