答案:不同数据库通过计算季度对应最后月份再获取该月最后一天。MySQL用QUARTER和YEAR构造日期并LAST_DAY;SQL Server用DATEFROMPARTS和EOMONTH;P%ignore_a_1%stgreSQL用EXTRACT和间隔运算。

在 SQL 中获取季度最后一天,不同数据库有不同的函数支持。下面介绍几种主流数据库的实现方式。
MySQL 获取季度最后一天
MySQL 没有直接获取季度最后一天的函数,但可以通过日期运算组合实现:
使用 QUARTER() 和 YEAR() 提取年份和季度计算该季度的最后一个月(3、6、9、12)构造该月的最后一天(下季度第一天减去一天)
示例:获取当前日期所在季度的最后一天
SELECT LAST_DAY( DATE_ADD( CONCAT(YEAR(CURDATE()), '-', CASE QUARTER(CURDATE()) WHEN 1 THEN '03' WHEN 2 THEN '06' WHEN 3 THEN '09' ELSE '12' END, '-01'), INTERVAL 0 MONTH )) AS quarter_last_day;
SQL Server 获取季度最后一天
SQL Server 可结合 DATEFROMPARTS 和 EOMONTH 实现:
用 DATEPART(quarter, …) 获取季度计算对应月份:季度 × 3用 EOMONTH 获取该月最后一天
示例:
arXiv Xplorer
ArXiv 语义搜索引擎,帮您快速轻松的查找,保存和下载arXiv文章。
73 查看详情
SELECT EOMONTH( DATEFROMPARTS( YEAR(GETDATE()), QUARTER(GETDATE()) * 3, 1 )) AS quarter_last_day;
PostgreSQL 获取季度最后一天
PostgreSQL 使用 EXTRACT 和日期运算:
提取季度和年份构造季度最后一个月的第一天加一个月再减一天
示例:
SELECT (MAKE_DATE( EXTRACT(YEAR FROM CURRENT_DATE)::INT, (EXTRACT(QUARTER FROM CURRENT_DATE)::INT * 3), 1 ) + INTERVAL '1 month' - INTERVAL '1 day')::DATEAS quarter_last_day;
基本上就这些常用方法。根据你使用的数据库选择对应语法即可。关键是先确定季度对应的最后月份,再获取该月最后一天。不复杂但容易忽略月份边界处理。
以上就是SQL 日期函数如何获取季度最后一天?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1088077.html
微信扫一扫
支付宝扫一扫