Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi un entier peut-il être soustrait de DATETIME mais pas du type DATE

Effectivement, c'est très cohérent. DATETIME est un type hérité des éditions précédentes de sql server. Depuis l'édition 2008, DATETIME2 a été introduit, et la possibilité d'ajouter/soustraire des nombres entiers a été supprimée. Vous pouvez toujours le faire le DATETIME comme un héritage.

DATE , comme DATETIME2 existe également depuis 2008, et pour ce type, l'ajout/la soustraction de nombres est également interdit.

Cela vous donne une erreur :

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

Donc tout va bien :).