Trên thực tế, nó là rất nhất quán. DATETIME
là một kiểu kế thừa từ các phiên bản trước của máy chủ sql. Kể từ phiên bản 2008, DATETIME2
đã được giới thiệu và khả năng cộng / trừ số nguyên bị loại bỏ. Bạn vẫn có thể làm điều đó vào DATETIME
như một di sản.
DATE
, như DATETIME2
cũng đã xuất hiện từ năm 2008 và đối với loại này, việc cộng / trừ các số cũng bị cấm.
Điều này mang lại cho bạn một lỗi:
DECLARE @Yesterday DATETIME2 = GETDATE();
SELECT @Yesterday-1;
Vì vậy, mọi thứ đều ổn :).