Função de data SQL Server

(Dias/Meses Vividos, Idade Atual, Idade 31/12)

Neste post entrego uma solução rápida para obter idade atual, dias de vida, meses de vida e idade até o final do ano.

Enjoy!

DECLARE @DATA_NASCIMENTO VARCHAR(10) = '1987-07-06',
        @DATA_ATUAL DATE = GETDATE()

SELECT
	  DATEDIFF(DAY,@DATA_NASCIMENTO,@DATA_ATUAL)AS DIASV_VIVIDOS,
	  DATEDIFF(MONTH,@DATA_NASCIMENTO,@DATA_ATUAL) AS MESES_VIVIDOS,
	  CASE WHEN
		 DATEPART(MONTH,@DATA_NASCIMENTO)<= DATEPART(MONTH,@DATA_ATUAL) AND
		 DATEPART(DAY,@DATA_NASCIMENTO)  <= DATEPART(DAY,@DATA_ATUAL)
	  THEN
		(DATEDIFF(YEAR,@DATA_NASCIMENTO,@DATA_ATUAL))
	  ELSE
		(DATEDIFF(YEAR,@DATA_NASCIMENTO,@DATA_ATUAL))- 1
	  END AS IDADE_ATUAL,
		 DATEDIFF(YEAR,@DATA_NASCIMENTO,@DATA_ATUAL) AS IDADE_3112

#CopieColeExecute