@SQL 中如何拼接时间TOC
SET @month01 = CONCAT(LEFT(p_rpt_date,6),‘01’);
SET @p_rpt_date1 = date_format(DATE_ADD(p_rpt_date,INTERVAL 1 DAY),’%Y%m%d’);
SET @last_month_date1 = date_format(DATE_SUB(@p_rpt_date1,INTERVAL 1 MONTH),’%Y%m%d’);
SET @p_month = CONCAT(date_format(p_rpt_date,’%Y%m’));
SET @last_month = CONCAT(date_format(DATE_SUB(p_rpt_date,INTERVAL 1 MONTH),’%Y%m%d’));
SET @last_month01 = CONCAT(LEFT(@last_month,6),‘01’);
– 传入时间减1
SET @p_rpt_date_1 = date_format(DATE_SUB(p_rpt_date,INTERVAL 1 DAY),’%Y%m%d’);
声明:输入的p_rpt_date是字符串 = { 例如:20211126
第一个set表达的意思是月初 ,拼接完成后是20211101;
第二个set表达的意思是这天的后一天 ,拼接完成后是20211127;
第三个set表达的意思是调用set2定义的20211127,拼接完后是上个月这一天 ,拼接完成后是20211027;
第四个set表达的意思是这个月,拼接完成后是202111;
第五个set表达的意思是这个月,拼接完后是上个月这一天 ,拼接完成后是20211026;
第六个set表达的意思是这个月,调用set5定义的20211026,拼接完后是上个月第一天,拼接完成后是20211001;
第七个set表达的意思是这天的后一天 ,拼接完成后是20211125;
set @day_start = str_to_date(concat(p_rpt_date,‘000000’),’%Y%m%d%H%i%s’);
set @day_end = str_to_date(concat(p_rpt_date,‘235959’),’%Y%m%d%H%i%s’);
set @mon_start = str_to_date(concat(left(p_rpt_date,‘6’),‘01000000’),’%Y%m%d%H%i%s’);
设置时间参数 202112
可得出本月的最后一天
set @mon_last = date_format(LAST_DAY(concat(202112,‘01’)),’%Y%m%d’);