SQL 中拼接时间

  • Post author:
  • Post category:其他


@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’);



版权声明:本文为shinergx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。