Bài viết này cung cấp so sánh song song của các kiểu dữ liệu ngày và giờ trong SQL Server liên quan đến phạm vi, độ chính xác và kích thước lưu trữ của chúng.
Loại dữ liệu | Phạm vi | Độ chính xác | Kích thước bộ nhớ |
---|---|---|---|
ngày | 0001-01-01 thông qua 9999-12-31 | 1 ngày | 3 byte |
ngày giờ | 1753-01-01 thông qua 9999-12-31 00:00:00 thông qua 23:59:59,997 | 0,00333 giây | 8 byte |
datetime2 | 0001-01-01 thông qua 9999-12-31 00:00:00 thông qua 23:59:59.9999999 | 100 nano giây | 6 đến 8 byte * |
datetimeoffset | 0001-01-01 thông qua 9999-12-31 00:00:00 thông qua 23:59:59.9999999 -14:00 thông qua +14:00 | 100 nano giây | 8 đến 10 byte * |
smalldatetime | 1900-01-01 thông qua 2079-06-06 00:00:00 thông qua 23:59:59 | 1 phút | 4 byte |
thời gian | 00:00:00.0000000 thông qua 23:59:59.9999999 | 100 nano giây | 3 đến 5 byte * |
* Lưu ý rằng dung lượng lưu trữ được liệt kê ở đây là dung lượng được liệt kê trong tài liệu của Microsoft. Tuy nhiên, các kiểu dữ liệu này cũng sử dụng 1 byte để lưu trữ độ chính xác. Do đó, hãy thêm 1 byte vào số tiền được liệt kê ở đây để có bức tranh đầy đủ hơn về các yêu cầu lưu trữ.
Ví dụ:kích thước bộ nhớ cho datetime2 sẽ nằm trong khoảng từ 7 đến 9 byte nếu bạn bao gồm thêm byte.
Chuyển đổi giữa các loại dữ liệu này
Do sự khác biệt về độ chính xác và phạm vi giữa các loại dữ liệu này, bạn cần phải hết sức cẩn thận khi chuyển đổi giữa chúng. Cụ thể, việc chuyển đổi từ loại có độ chính xác cao hơn sang loại có độ chính xác thấp hơn có thể làm mất một phần giá trị và giá trị còn lại được làm tròn.
Hãy xem Chuyển đổi giữa các kiểu dữ liệu ngày và giờ trong SQL Server để biết các ví dụ.