TIMEデータ型のデータを圧縮解除するには、6バイト必要です。次のテーブルに、そのバイトを分解し、それぞれの有効範囲と最小ビット数を示します。
時間 | バイト | 有効範囲 | 最小ビット数 |
---|---|---|---|
時間 | 1 | 00 23 | 5 |
分 | 1 | 00 59 | 6 |
秒 | 4 | 00 000000 61.999999 | 6~26 (秒精度によって異なります) |
TIMEの次の値を挿入するとします。
INSERT into t1(1, TIME'03:38:06');
次のSQL文が指定されていたとします。
CREATE TABLE table t1(pk int, col1 time(0) compress using ts_compress decompress using ts_decompress);
必要なビット数は次のとおりです。
- 3時= 5
- 38分= 6
- 6秒= 6
TIMEを表わすために必要なビットの総数は17です。最小バイト数は3です。TIME (TIMEZONEなし)では6バイトを使用するため、TS_COMPRESSは6バイトを3バイトに圧縮します。この関数によって、3バイトが節約されます。