由於一開始沒有控管日期的格式如何,資料蒐集起來有點雜亂。
但是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')
但是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')
沒有留言:
張貼留言