1、背景
介面服務中一般對報表或者看板按照年、月維度求和需要對空的日期所對應的資料進行補0,以下是一些處理思路可供借鑑。
2、mysql查詢空日期補0用法
select
t1.day,
coalesce
(t2.cnt,0)
as cnt
from
(select
@cdate := date_add(
@cdate
,interval-1
day)
asday
from
(select
@cdate := date_add(curdate(),
interval+1
day)
from
sync_job
) tmp1
where
@cdate
> date_sub(curdate(),
interval
7day
)) t1
left
join
(select date_format(create_time,
'%y-%m-%d')as
day,
count(1
)as cnt from sync_job
where is_disable =
0and create_time >= date_sub(curdate(),
interval
7day
)group
by date_format(create_time,
'%y-%m-%d'
)) t2
on t1.
day= t2.
day--輸出
2020-07
-1002020-07
-0922020-07
-0812020-07
-0782020-07
-0622020-07
-0512020-07
-0402020-07
-033
3、**層面處理查詢空日期補0
以下是工具類:
public
final
static ******dateformat format =
new******dateformat
("yyyy-mm-dd");
public
final
static ******dateformat format2 =
new******dateformat
("yyyy-mm");
/** * 獲取日期差
** @param start
* @param end
* @return
* @throws exception
*/public
static
intgetdiffdays
(string start, string end)
throws exception
/** * 獲取過去指定天內的日期陣列
** @param intervals
* @return
*/public
static arraylist
getdays
(int intervals)
return pastdayslist;
}/**
* 獲取月份日期
** @param past
* @return
*/private
static string getpastdate
(int past)
/** * 獲取年月集合
** @param intervals
* @return
*/public
static set
getyearmonths
(int intervals)
return pastdayssets;
}/**
* 獲取年份日期
** @param past
* @return
*/private
static string getpastdate4month
(int past)
很簡單的用法,再此記錄下。 SQL語句獲得本年日期資料與本月日期資料
本年 select dateadd dd,number datename yy,getdate 0101 from master.spt values where type p andnumber datediff dd,datename yy,getdate 0101 datename yy,ge...
ORACLE插入日期資料
命令 insert into floor values to date 年 月 日 時 分 秒 yyyy mm dd hh24 mi ss 例子 在 sql plus 環境。當省略hh mi和ss對應的輸入引數時,oracle使用0作為default值。如果輸入的日期資料忽略時間部分,oracle會...
Oracle中插入日期資料
oracle中插入日期資料有幾種情況,主要是插入日期的精度的區別。但是這個提供的資料截止到年的時候,系統的月份會預設為當前的月份,日期為01,就是最後一條資料,今天是4月22日所以日期為04。insert into student values to date 2015 1 30 12 20 33 ...