Quando olho para a função DATEDIFF() no SQL Server, vejo que ela usa um datepart como primeiro parâmetro.
Os possíveis valores de datepart incluem day e dayofyear .
Entendo que dayofyear é o número do dia do ano (para que 2 de fevereiro seja 33, por exemplo) e day é o dia do mês (para que 2 de fevereiro seja 2). No entanto, não entendo a diferença quando se trata da função DATEDIFF.
aqui estão alguns exemplos:
select DATEDIFF(dayofyear, '2012-01-01', '2012-02-02')
returns: 32
select DATEDIFF(day, '2012-01-01', '2012-02-02')
returns: 32
select DATEDIFF(dayofyear, '2011-02-01', '2012-02-02')
returns: 366
select DATEDIFF(day, '2011-02-01', '2012-02-02')
returns 366
O dia do ano e o dia são equivalentes para os propósitos de DATEDIFF () ?
Sim, é o mesmo efeito para
DATEDIFF()
. Para uma função aritmética comoDATEDIFF()
, terá o mesmo resultado, pois a matemática ainda está levando em conta a mesma unidade: se é paraday
oudayofyear
ambos ainda estão em dias.