Ve skutečnosti je to velmi konzistentní. DATETIME je typ zděděný z předchozích vydání sql serveru. Od vydání z roku 2008, DATETIME2 byla zavedena a odstraněna možnost sčítání/odečítání celých čísel. Stále to můžete udělat DATETIME jako dědictví.
DATE , například DATETIME2 existuje také od roku 2008 a u tohoto typu je také zakázáno sčítat/odečítat čísla.
Zobrazí se chyba:
DECLARE @Yesterday DATETIME2 = GETDATE();
SELECT @Yesterday-1;
Takže vše v pořádku :).