今回はSQLによる日付データの扱いについて説明します.
DBMSとしては,フリーのDBMSであるPostgreSQLを用います.
今回の記事では,下記のような方に参考なると思います.
✔ 今後データ解析をしたいが,日付データをどのように扱えば良いのかわからない人
SQLによる日付のフォーマットの操作
データベース操作において日付データは最も大切な要素です.
例として,「2005/06」のように年月しか記載されていない場合があります.
このようなデータ形式は,データ解析,特に時系列分析には向いていません.
なぜなら,SQLや統計解析ソフトにおいて
年月データ同士の四則演算ができないからです.
ほとんどのソフトで日付データの四則演算しかサポートしていません.
そのため,このようなデータに対しては「日」のデータも追加すると良いです.
SQLによる日付データの変換
さて,それでは「日」に何を用いれば良いかですが,
基本的にユーザーが勝手に定義してしまえば良いです.
平均期間などを評価する場合には,中間の「15」を用いると良いです.
一方で,基準となる日付データがすでに決まっており,その日付データに規則性がない場合には
基本的に「1」で良いかと思います.
例えば,医療データなどでは基準となるのが,「とある薬剤の薬剤処方日」で月までのデータしかないのが「生年月日」だったとします.
この場合,生年月日の日は,「1」を追加してやれば良いということです.
SQLによる日付データを追加するソースコード例
--誕生月のデータを,誕生日に変換する(PostgreSQL)
select
pat.患者ID,
pat.誕生月,
--↓誕生月のデータを誕生日に変換している
cast( pat. 誕生月 || '01' as date) as 誕生日
--↓テーブル名は適当です.あまり気にしないでください
from patient pat;
上記のソースコードを実行すると,誕生月が「2015/06」ようなであったと仮定すると,「2015/06/01」のようなデータに変換されます.
文字列関数である「||」を利用しています.
この関数は文字列を結合する機能があるので,「01」を結合させています.
結合させた後に,「date型」にキャストしています.
かなり単純な例ですが,データ分析においてこの操作は大事すぎる操作です.
コメント