En realidad, es muy consistente. DATETIME
es un tipo heredado de ediciones anteriores de sql server. Desde la edición de 2008, DATETIME2
se ha introducido y se ha eliminado la posibilidad de sumar/restar números enteros. Todavía puedes hacerlo el DATETIME
como legado.
DATE
, como DATETIME2
también ha existido desde 2008, y para este tipo también está prohibido sumar/restar números.
Esto te da un error:
DECLARE @Yesterday DATETIME2 = GETDATE();
SELECT @Yesterday-1;
Así que todo está bien :).