SQL---計算兩個日期之間的時間差
阿新 • • 發佈:2018-12-31
在進行日期處理的時候,有時會需要計算一下兩個日期之間相差幾年零幾個月,這裡記錄一下,如何用mysql資料庫和java結合,準確的拿到兩個日期之間的時間差。
1.mysql資料庫中,利用TIMESTAMPDIFF函式,拿到兩個日期之間相差的月數,當然,也可以拿到天數,年數,如下:
SELECT TIMESTAMPDIFF(DAY,'2012-10-01','2013-01-13') as dayDiff;
結果:104
SELECT TIMESTAMPDIFF(MONTH,'2011-05-01','2013-01-13') as monthDiff;
結果:20
SELECT TIMESTAMPDIFF(YEAR ,'2011-05-01','2013-01-13') as dayDiff;
結果:1
2.然後,在java程式碼中,對這個月數做個簡單的處理即可,如下:
- <span style="white-space:pre;"> </span>long monthCount = (long)map.get("monthDiff");
- String yearMonth = "";
- if(monthCount == 12){
- yearMonth = "1年";
-
}else
- yearMonth = monthCount + "個月";
- }elseif(monthCount > 12){
- yearMonth = monthCount/12L+"年"+monthCount%12L+"個月";
- }
- map.put("yearMonth",yearMonth);
比如,monthCount = 20L時,這個yearMonth =“1年8個月”