Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que o inteiro pode ser subtraído de DATETIME, mas não do tipo DATE


Na verdade, é muito consistente. DATETIME é um tipo herdado de edições anteriores do sql server. Desde a edição de 2008, DATETIME2 foi introduzido, e a possibilidade de adicionar/subtrair inteiros removida. Você ainda pode fazer isso em DATETIME como um legado.

DATE , como DATETIME2 já existia desde 2008, também, e para este tipo de adição/subtração de números também é proibido.

Isso lhe dá um erro:
DECLARE @Yesterday DATETIME2 = GETDATE();
SELECT @Yesterday-1;

Então está tudo bem :).