如何在MySQL中利用CURRENT_DATE获取当前季度的第一天日期
MySQL 获取指定日期所在季度的第一天
要实现获取指定日期(包括当前日期)所在季度的第一天,可通过组合使用DATE_ADD、DATE_FORMAT和QUARTER函数完成,以下是具体实现:
查询当前日期所在季度的第一天
直接基于CURRENT_DATE查询的SQL语句:
SELECT DATE_ADD( DATE_FORMAT(CURRENT_DATE, '%Y-01-01'), INTERVAL (QUARTER(CURRENT_DATE) - 1) QUARTER ) AS quarter_first_day;
查询任意指定日期所在季度的第一天
将CURRENT_DATE替换为目标日期即可,例如查询2022-11-01或2022-11-09对应的季度第一天:
SELECT DATE_ADD( DATE_FORMAT('2022-11-09', '%Y-01-01'), INTERVAL (QUARTER('2022-11-09') - 1) QUARTER ) AS quarter_first_day;
逻辑说明
DATE_FORMAT(date, '%Y-01-01'):把目标日期转换为当年的第一天(格式为YYYY-01-01)QUARTER(date):获取目标日期所属季度(返回1-4的整数)INTERVAL (QUARTER(date)-1) QUARTER:计算从当年第一天到目标季度第一天需要增加的季度间隔(比如Q4需增加3个季度)DATE_ADD:将计算出的季度间隔加到当年第一天,最终得到目标季度的第一天
执行后返回结果格式为YYYY-MM-DD,完全符合需求。
内容的提问来源于stack exchange,提问作者Naga Satya
相关产品推荐
相关产品推荐

