星期四, 5月 04, 2017

MySQL Universal date format transform

由於一開始沒有控管日期的格式如何,資料蒐集起來有點雜亂。

但是MySQL沒有像Oracle資料庫系統有比較好用的日期處理Function,在經過不斷嘗試後終於找到一個適合的方法。

使用UNIX_TIMESTAMP這個function,就可以同時把不同格式的日期一併轉成是統一的格式。

不會再有一種格式轉出來是正常的,另外一種格式轉出來卻是null的情況發生。

select count(callDate) from DeliverLog where from_unixtime(UNIX_TIMESTAMP(callDate),'%Y-%m-%d %H:%i:%s')

>= STR_TO_DATE('2016-12-01 00:00:00', '%Y-%m-%d %H:%i:%s') and from_unixtime(UNIX_TIMESTAMP(callDate),'%Y-%m-%d %H:%i:%s') < STR_TO_DATE('2017-01-01 00:00:00', '%Y-%m-%d %H:%i:%s')

select count(*)

deliverTime from DeliverLog where deliverTime is not null and TIME_TO_SEC(TIMEDIFF(STR_TO_DATE(deliverTime, '%Y-%m-%d %H:%i:%s') ,STR_TO_DATE(pickTime, '%Y-%m-%d %H:%i:%s'))) < 14400 and

STR_TO_DATE(deliverTime, '%Y-%m-%d %H:%i:%s') >= STR_TO_DATE('2016-11-01 00:00:00', '%Y-%m-%d %H:%i:%s') and STR_TO_DATE(deliverTime, '%Y-%m-%d %H:%i:%s') < STR_TO_DATE('2016-12-01 00:00:00', '%Y-%m-%d %H:%i:%s')

沒有留言: