datetime2 นอกจากใช้พื้นที่เก็บข้อมูลน้อยกว่า datetime ธรรมดา ๆ แล้ว ยังสามารถกำหนด ความละเอียด (Precision) เพื่อลดขนาดได้อีก โดยมีถึง 7 scale เลยทีเดียว
Precision (n) | รูปแบบทศนิยม (Fractional Seconds) | ความละเอียด (Resolution) | ขนาดจัดเก็บ (Storage Size) | ตัวอย่างค่า |
|---|---|---|---|---|
| 0 | ไม่มีทศนิยม | 1 วินาที | 6 bytes | 1982-08-05 07:00:00 |
| 1 | .X | 0.1 วินาที (100ms) | 1982-08-05 07:00:00.1 | |
| 2 | .XX | 0.01 วินาที (10ms) | 1982-08-05 07:00:00.12 | |
| 3 | .XXX | 0.001 วินาที (1ms) | 7 bytes | 1982-08-05 07:00:00.123 |
| 4 | .XXXX | 0.0001 วินาที (100$\mu$s) | 1982-08-05 07:00:00.1234 | |
| 5 | .XXXXX | 0.00001 วินาที (10$\mu$s) | 8 bytes | 1982-08-05 07:00:00.12345 |
| 6 | .XXXXXX | 0.000001 วินาที (1$\mu$s) | 1982-08-05 07:00:00.123456 | |
| 7 | .XXXXXXX | 0.0000001 วินาที (100ns) | 1982-08-05 07:00:00.1234567 |
จากตารางจะเห็นว่าตัวที่คุ้มค่าคือ datetime2 Precision = 2 เพราะใช้พื้นที่น้อยที่สุดแค่ 6 bytes แต่ยังเก็บรายละเอียด 0.01 วินาที (10ms) เอาจริง ๆ แล้ว ตามความสามารถของมนุษย์ น่าจะแยกความแตกต่างไม่ได้แล้ว
แต่ถ้าเราไม่ได้กำหนด Precision ไว้จะใช้ default คือ 7 = 8 bytes
ที่นี้เราจะกำหนด datetime2 Precision = 2 ได้อย่างไร ก็เพียงแค่ใช้ datetime2(Precision) เช่นALTER COLUMN [ColumnName] datetime2(2) [NULL | NOT NULL];
อ่านเพิ่มเติม
