WFU

2015年6月21日 星期日

如何將健保資料庫的日期格式變成實際可計算的日期

作者:陳建翰 醫師


健保資料庫因為有個資洩漏的危險性,所以所有相關判斷的出身分的資料都有加密,包括了身分證字號以及生日。經過資料加密,所有病人的生日“年月日”就變成了 “年月00 ”的格式。

如何將生日變成實際可以計算的日期格式,對計算年齡十分重要,分享一下個人的經驗與數個Facebook上討論的方法供大家參考。


方法一:


這是我自己使用的方法。

第一張表在生日欄使用:
STR_to_DATE (Birthday, %Y%M%D) as birth

下一張表在生日欄使用: 
Date_format (Birth, %Y%M01) as Birth

兩張表就可以將生日變成 年月01, 這樣就可使用 Datedifferent 直接與住院日相減,用以估計病人的年齡。

算出來的是日數,可以在下一張表除以365.25 就是年,再乘以12 就是月。

用哪個比較好,就看研究需求囉


方法二:


在Facebook 的 健保資料庫研究討論區 (MySQL+Navicat+MedCalc) 社團中 陳俊宇醫師 所提供的方法:

先轉成年月6碼:
EXTRACT(YEAR_MONTH FROM birthday) 

然後再使用 PERIOD_DIFF(200802,200703) 來計算間隔幾個月。



方法三:


一樣在健保資料庫研究討論區 (MySQL+Navicat+MedCalc) 社團討論中蔡瑋林醫師 提到的方法:

在轉換時先將每個日期設定為1日就好 
DateX=left(dateX,6)+'01'


給使用Mysql 做健保資料庫探勘的大家做參考囉!