sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué se puede restar un número entero de DATETIME pero no del tipo DATE?

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 :).