oanap
3/6/2018 - 8:17 PM

Age calc

--in T-SQL
AND CASE WHEN DATEADD(YY, DATEDIFF(YY, p.birth_date , apt.appointment_datetime),  p.birth_date )  > apt.appointment_datetime
                     THEN DATEDIFF(YY, p.birth_date , apt.appointment_datetime) - 1 
                ELSE DATEDIFF(YY, p.birth_date , apt.appointment_datetime) 
              END >= 18    --18 yrs or older at appointment time 
              
              
  
		, CASE WHEN DATEADD(YY, DATEDIFF(YY, p.date_of_birth , GETDATE()),  p.date_of_birth )  > GETDATE()
                     THEN DATEDIFF(YY, p.date_of_birth , GETDATE()) - 1 
                ELSE DATEDIFF(YY, p.date_of_birth , GETDATE()) 
              END AS Current_age
              
--in Postgres, YY has to be year
		    , CASE WHEN DATEADD(year, DATEDIFF(year, x.birth_date , GETDATE()),  x.birth_date )  > GETDATE()
					THEN DATEDIFF(year,x.birth_date , GETDATE()) - 1 
					ELSE DATEDIFF(year, x.birth_date , GETDATE()) 
					END AS Current_age