MySql 日期周处理方式

SET @biz_date = '2023-01-01'; SELECT @biz_date biz_date, -- 日期 YEAR(@biz_date) year_, -- 年 MONTH(@biz_date) month_, -- 月 DAY(@biz_date) day_, -- 日 WEEKOFYEAR(@biz_date) week_, -- 周 日期date位于那一年的第几周。周一作为一周的第一天。 这一周算上一年还是下一年,取决于这一周的大多数日期(4天以上)在哪一年。算在前一年,就是前一年的最后一周;算在后一年就是后一年的第一周。 CASE WHEN WEEKOFYEAR(@biz_date) IN(52,53) AND MONTH(@biz_date) = 1 THEN YEAR(@biz_date)-1 WHEN WEEKOFYEAR(@biz_date) = 1 AND MONTH(@biz_date) = 12 THEN YEAR(@biz_date)+1 ELSE YEAR(@biz_date) END week_year, -- 计算周对应的年 比如 2023-01-01 WEEKOFYEAR(2023-01-01) 是2022年的52周,但是日期却是2023年,在系统查询的时候这里会有问题,需要判断 周的所属年份 DATE_SUB(@biz_date,INTERVAL WEEKDAY(@biz_date) DAY) week_start, -- 计算周的开始时间 DATE_ADD(@biz_date,INTERVAL 6-WEEKDAY(@biz_date) DAY) week_end -- 计算周的结束时间 ;
上一篇:计算机网络中的数据包传输机制详解


下一篇:力扣经典面试26题删除有序数组中的重复项1