SQLによる日付データの操作

今回は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型」にキャストしています.

かなり単純な例ですが,データ分析においてこの操作は大事すぎる操作です.

関連記事




よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某メーカーで数年間エンジニアとして勤務していました.研究,開発,品質管理とたらい回しの刑を満了し,現在はパッケージソフトウェア開発者として個人で活動しています.

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次