SQL Server 2008 : 追加されたそのほかの時刻データ型

datetime2型

従来のDateTime型はデータサイズとしては比較的小さかったものの、それによって、扱える期間と、精度の制約を受けてきたが、このdatetime2型ではその制限を大きく緩和させている。

データの精度としてはtime型と同じく秒以下最大7桁(100n秒)の精度を持ち、1901年1月1日~9999年12月31日までの範囲を表すことができる。サイズは8バイト。

ちなみに従来のdatetime型は秒以下の定まった精度は持たず、値の範囲はユリウス歴からグレゴリ歴に切り替わった1753年1月1日から9999年12月31日までとなっている。

datetimeoffset

基本はdatetime2型と同じ範囲、精度を持ち、それ以外に±14時間分のオフセット値を持つことができる。これはUTCに対してタイムゾーンオフセット値を持つような時刻データを扱うためだ。サイズは10バイト。

複数国のデータを標準時ベースで集計しなければならない場合には便利なデータ型かもしれない。おそらく今はdatetime型列にアプリケーション側でローカル時刻をUTCに変換して格納していると思われるが、この型を使うことで、今まで通り格納時の変換は必要だが、データ管理・使用において別途タイムゾーンの管理をしなくてすむようになる

 

SQL Server 2008では時刻型について大きく機能が向上しており、今まで持たれていた不満の多くはこれで解消されているのではないだろうか。強いていえばtimespan値を扱うための型がないくらいか。(これはこれであるとかなり便利。今は秒数をintで持ったりしている。)

One thought on “SQL Server 2008 : 追加されたそのほかの時刻データ型”

コメントを残す