Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché è possibile sottrarre un intero da DATETIME ma non il tipo DATE

In realtà è molto coerente. DATETIME è un tipo ereditato dalle precedenti edizioni di sql server. Dall'edizione 2008, DATETIME2 è stata introdotta e la possibilità di aggiungere/sottrarre numeri interi è stata rimossa. Puoi ancora farlo su DATETIME come eredità.

DATE , come DATETIME2 esiste anche dal 2008 e per questo tipo è vietato aggiungere/sottrarre numeri.

Questo ti dà un errore:

DECLARE @Yesterday DATETIME2 = GETDATE();
SELECT @Yesterday-1;

Quindi va tutto bene :).