Tag Archive precision

Byphunsanit

SQL Server: datetime2 ความละเอียด

datetime2 นอกจากใช้พื้นที่เก็บข้อมูลน้อยกว่า datetime ธรรมดา ๆ แล้ว ยังสามารถกำหนด ความละเอียด (Precision) เพื่อลดขนาดได้อีก โดยมีถึง 7 scale เลยทีเดียว

Precision (n)รูปแบบทศนิยม (Fractional Seconds)ความละเอียด (Resolution)ขนาดจัดเก็บ (Storage Size)ตัวอย่างค่า
0ไม่มีทศนิยม1 วินาที6 bytes1982-08-05 07:00:00
1.X0.1 วินาที (100ms)1982-08-05 07:00:00.1
2.XX0.01 วินาที (10ms)1982-08-05 07:00:00.12
3.XXX0.001 วินาที (1ms)7 bytes1982-08-05 07:00:00.123
4.XXXX0.0001 วินาที (100$\mu$s)1982-08-05 07:00:00.1234
5.XXXXX0.00001 วินาที (10$\mu$s)8 bytes1982-08-05 07:00:00.12345
6.XXXXXX0.000001 วินาที (1$\mu$s)1982-08-05 07:00:00.123456
7.XXXXXXX0.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];

อ่านเพิ่มเติม