quinta-feira, 9 de fevereiro de 2023

SQL - Retornar Valores de Datas em Anos

DATEDIFF

Retorna a diferença entre valores de data, em anos. O retorno é do tipo int.


SintaxeDATEDIFF ( datepart , startdate , enddate )


Nota:  Unidades datepart comumente usadas incluem monthousecond.O valor datepart não pode ser especificado em uma variável, nem como uma string entre aspas como 'month'.


A tabela a seguir lista todos os valores datepart válidos. DATEDIFF aceita o nome completo do datepart ou qualquer abreviação listada do nome completo.

nome da dataabreviação de data e parte
anoy, yy, yyyy
trimestreqq, qq
mêsmm, m
dia do anovocê
diadd, d
semanawk, ww
horahh
minutomi, n
segundoss, s
milissegundoEM
microssegundomcs
nanossegundons

A diferença int entre startdate e enddate , expressa no limite definido por datepart.

limites do datepart

SELECT DATEDIFF(year,        '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(quarter,     '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(month,       '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(dayofyear,   '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(day,         '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(week,        '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(hour,        '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(minute,      '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(second,      '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(microsecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');



FLOOR

Retorna o maior inteiro menor ou igual à expressão numérica especificada.



SintaxeFLOOR ( numeric_expression )


Argumentosnumeric_expression, é uma expression da categoria de tipo de dados numéricos exatos ou aproximados, com exceção do tipo de dados bit.


Tipo de retorno, retorna o mesmo tipo que numeric_expression.



Exemplos


-- O resultado é a parte inteira do valor calculado no mesmo tipo de dados que numeric_expression.

SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45);


-- Exibe ano e Mês

  SELECT DATEDIFF(DAY,'1980-10-01', GETDATE()) / 365.25


  -- Exibe apenas anos

  SELECT FLOOR(DATEDIFF(DAY,'1980-10-01', GETDATE()) / 365.25)


  -- Exibe a data atual

  SELECT GETDATE()


  -- Soma dez dias a data atual

  SELECT GETDATE() + 10

Nenhum comentário:

Postar um comentário