新建測(cè)試表sales_test
新建測(cè)試表,并插入數(shù)據(jù)進(jìn)行查看
create table sales_test(
time date,
sales float
);
查看數(shù)據(jù)
select * from sales_test;
原理
DB2可以使用英語(yǔ)來(lái)執(zhí)行日期和時(shí)間計(jì)算:
current date + 1 YEAR
current date + 3 YEARS + 2 MONTHS + 15 DAYS
current time + 5 HOURS - 3 MINUTES + 10 SECONDS
以2017-01-04 16:46:47為例彤悔,做日期和時(shí)間的計(jì)算操作
values current date + 1 YEAR;
values current date + 3 YEARS + 2 MONTHS + 15 days;
values current time;
values current time + 5 HOURS - 3 MINUTES + 10 SECONDS;
得到的結(jié)果將是:
2018-01-04
2020-03-19
21:43:57
因此嘉抓,求同環(huán)比的時(shí)候可以通過(guò)對(duì)日期進(jìn)行計(jì)算求出去年當(dāng)日和上月當(dāng)日,再通過(guò)where語(yǔ)句即可求出同比環(huán)比銷(xiāo)售額晕窑。
而在mysql中使用date_add()函數(shù)做日期加減操作抑片。
如,
date_add(time, interval 1 day)
實(shí)例
求環(huán)比
select time,sales,pre_sales,(sales-pre_sales)/pre_sales as rate from
(select time,sales,
(select sales from sales_test b where b.time=a.time-1 day) as pre_sales
from sales_test a);
求同比
select time,sales,pre_sales,(sales-pre_sales)/pre_sales as rate from
(select time,sales,
(select sales from sales_test b where b.time=a.time-1 year) as pre_sales
from sales_test a);