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