I have two columns, Birth_Date and Publish_Date. I need to calculate number of years (taking into account months) between the Publish_Date and Birth_Date. (DATE, FORMAT'YYYYMMDD')
I have attempted to use DATEDIFF, however it does not seem to be picking this up. Solution from here: How to calculate age (in years) based on Date of Birth and getDate()
, CASE WHEN dateadd(year, datediff (year, Brth_Dt, Pub_Dt), Brth_Dt) > Pub_Dt
THEN datediff(year, Brth_Dt, Pub_Dt) - 1
ELSE datediff(year, Brth_Dt, Pub_Dt)
END as Brth_Yrs
Error: SELECT Failed. 3706: Syntax error: expected something between '(' and the 'year' keyword.
Also tried this solution from How to calculate Age/Number of Years between two dates
, DATEDIFF(YEAR, Brth_Dt, Pub_dt) +
CASE
WHEN MONTH(@Pub_dt) < MONTH(Brth_Dt) THEN -1
WHEN MONTH(@Pub_dt) > MONTH(Brth_Dt) THEN 0
ELSE
CASE WHEN DAY(@Pub_dt) < DAY(Brth_Dt) THEN -1 ELSE 0 END
END) As Brth_Yrs
Error: SELECT Failed. 3706: Syntax error: expected something between '(' and the 'YEAR' keyword.
Can anyone help on how to write this?