quarta-feira, 26 de abril de 2023

SQL DATEDIFF

Se você deseja retornar o número de dias, anos, meses ou outro valor desejado. Utilize a funçao DATEDIFF. 

Essa função retorna a contagem dos limites especificados de datepart entre os parâmetros especificados startdate e enddate.


Sintaxe:

DATEDIFF ( datepart , startdate , enddate )


Nota:

DATEDIFF relata a diferença entre startdate e enddate. Unidades de datepart usadas com frequência incluem month ou second.

O valor de datepart não pode ser especificado em uma variável, nem como uma cadeia de caracteres entre aspas, como 'month'.

O valor de datepart não pode ser especificado em uma variável, nem como uma cadeia de caracteres entre aspas, como 'month'.

Use anos de quatro dígitos para evitar ambiguidade.

O tipo de retorno e um INT.


Tabela com todos os valores válidos de datepart

Nome do datepartAbreviação do datepart
yeary, yy, yyyy
quarterqq, q
monthmm, m
dayofyeardy
daydd, d
weekwk, ww
hourhh
minutemi, n
secondss, s
millisecondms
microsecondmcs
nanosecondns

Uma expressão que pode resolver um dos seguintes valores:

  • date
  • datetime
  • datetimeoffset
  • datetime2
  • smalldatetime
  • time


Exemplos com 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');



2 comentários: