CHỈNH SỬA:Truyền tới float / int không còn hoạt động trong các phiên bản SQL Server gần đây. Thay vào đó, hãy sử dụng những thứ sau:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable
Lưu ý rằng ngày chuỗi phải ở định dạng ngày rõ ràng để không bị ảnh hưởng bởi cài đặt khu vực của máy chủ của bạn.
Trong các phiên bản cũ hơn của SQL Server, bạn có thể chuyển đổi từ DateTime sang Integer bằng cách truyền sang float, sau đó thành int:
select cast(cast(my_date_field as float) as int)
from mytable
(NB:Bạn không thể truyền thẳng đến một int, vì MSSQL làm tròn giá trị nếu bạn đã qua giữa ngày!)
Nếu có sự chênh lệch trong dữ liệu của bạn, rõ ràng bạn có thể cộng hoặc trừ phần này khỏi kết quả
Bạn có thể chuyển đổi theo hướng khác, bằng cách truyền thẳng trở lại:
select cast(my_integer_date as datetime)
from mytable