一些不常用的日期處理函數

 因爲統計需要

  需要在日表(YYYY-MM-DD  hh:mm:ss)這種2019-08-16 18:22:31

 以及月表(YYYYMM) .

需要根據傳入指定月份,獲取該月的開始時間、結束時間。

以及按月統計日表等。

//根據傳入日期計算改月最後一天:格式23:59:59
    public static Date getlastDayDateOfMonth(final Date date) {
    	final Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        cal.set(Calendar.MILLISECOND, 59);
        cal.add(Calendar.MONTH, 1);
        cal.set(Calendar.DAY_OF_MONTH, 0);
        return cal.getTime();
    }

 
    //根據傳入日期計算月初第一天:時分秒爲0
    public static Date getFirstDayDateOfMonth(final Date date) {
        final Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
        cal.set(Calendar.DAY_OF_MONTH, last);
        return cal.getTime();
    }

查詢指定日期上個月份:返回string的YYYYMM.

public static String getLastMonth(Date date) {
    	SimpleDateFormat format = new SimpleDateFormat("yyyyMM");	
    	Calendar calendar = Calendar.getInstance();
    	calendar.setTime(date); // 設置爲指定時間
    	calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 設置爲上一個月
    	date = calendar.getTime();
    	String accDate = format.format(date);
    	return accDate;
        }

二 按月統計日表

SQL:

select * from table where  DATE_FORMAT(createtime,'%Y%m')='201908'

查詢所有8月份創建的,也可以按照時間區間去查,但是需要上面那樣,根據指定時間去篩選對應月份的記錄。

數據量小的時候可以用函數,上千萬的就不推薦了。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章