top of page

Calcular tempo de empresa + Classificação IBGE idade

Atualizado: 3 de ago. de 2023


Calcular tempo de empresa se baseando na data de admissão e data de demissão.

Se a data de admissão estiver vazia, ele considera a data atual GETDATE().



Resultado:



--> calcular diferença entre duas datas


CASE

WHEN DATEDIFF(YEAR, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) = 1

THEN CAST(DATEDIFF(YEAR, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) AS VARCHAR) + ' ANO'

WHEN DATEDIFF(YEAR, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) <> 0

THEN CAST(DATEDIFF(YEAR, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) AS VARCHAR) + ' ANOS'

WHEN DATEDIFF(MONTH, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) = 1

THEN CAST(DATEDIFF(MONTH, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) AS VARCHAR) + ' MÊS'

WHEN DATEDIFF(MONTH, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) = 0

THEN CAST(DATEDIFF(DAY, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) AS VARCHAR) + ' DIAS'


ELSE CAST(DATEDIFF(MONTH, DATAADMISSAO, ISNULL(DATADEMISSAO, GETDATE())) AS VARCHAR) + ' MESES'

END AS TEMPO_EMPRESA




--> Calcular tempo de empresa









CASE


WHEN DATEDIFF(DAY, PFUNC.DATAADMISSAO, GETDATE()) < 30 THEN CONCAT(DATEDIFF(DAY, PFUNC.DATAADMISSAO, GETDATE()), ' D')

WHEN DATEDIFF(DAY, PFUNC.DATAADMISSAO, GETDATE()) > 360 THEN CONCAT(DATEDIFF(YEAR, PFUNC.DATAADMISSAO, GETDATE()), ' A')

WHEN DATEDIFF(DAY, PFUNC.DATAADMISSAO, GETDATE()) < 360 THEN CONCAT(DATEDIFF(MONTH, PFUNC.DATAADMISSAO, GETDATE()), ' M')

END AS 'TEMPO_EMPRESA',


CASE


WHEN DATEDIFF(DAY, PFUNC.DATAADMISSAO, GETDATE()) < 30 THEN 'Menos de 30 dias'

WHEN DATEDIFF(DAY, PFUNC.DATAADMISSAO, GETDATE()) < 365 THEN CONCAT(DATEDIFF(MONTH, PFUNC.DATAADMISSAO, GETDATE()), ' meses')

WHEN DATEDIFF(YEAR, PFUNC.DATAADMISSAO, GETDATE()) = 1 THEN '1 ano'

ELSE CONCAT(DATEDIFF(YEAR, PFUNC.DATAADMISSAO, GETDATE()), ' anos')

END AS TEMPO_EMPRESA,




--> classificar idade de acordo com os parâmetros do IBGE

CASE


WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) < 20 THEN 'Menor ou igual a 19'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 20 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 24 THEN '20 a 24 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 25 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 29 THEN '25 a 29 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 30 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 34 THEN '30 a 34 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 35 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 39 THEN '35 a 39 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 40 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 44 THEN '40 a 44 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 45 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 49 THEN '45 a 49 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 50 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 54 THEN '50 a 54 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 55 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 59 THEN '55 a 59 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 60 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 64 THEN '60 a 64 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 65 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 69 THEN '65 a 69 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 70 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 74 THEN '70 a 74 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 75 and DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) <= 79 THEN '75 a 79 anos'

WHEN DATEDIFF(YEAR, PPESSOA.DTNASCIMENTO, GETDATE()) >= 80 THEN 'Maior ou igual a 80'



ELSE ' '

END AS CLASSIFICACAO_IBGE,




--> Bônus:

Classificar geração


CASE


WHEN YEAR(PPESSOA.DTNASCIMENTO) <= '1960' THEN 'BABY BOOMERS'

WHEN (YEAR(PPESSOA.DTNASCIMENTO) >= '1961' AND

YEAR(PPESSOA.DTNASCIMENTO) <= '1980') THEN 'X'

WHEN (YEAR(PPESSOA.DTNASCIMENTO) >= '1981' AND

YEAR(PPESSOA.DTNASCIMENTO) <= '1997') THEN 'Y'

WHEN (YEAR(PPESSOA.DTNASCIMENTO) >= '1998' AND

YEAR(PPESSOA.DTNASCIMENTO) <= '2009') THEN 'Z'

ELSE 'ALFA'

END AS 'GERACAO',

bottom of page