SQL获取月份中的最后一天

这篇具有很好参考价值的文章主要介绍了SQL获取月份中的最后一天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇文章中我们介绍了如何利用 SQL 获取月份中的第一天,本文就来聊一聊怎么获取月份中的最后一天,涉及的数据库包括 Oracle、MySQL、Microsoft SQL Server、PostgreSQL 以及 SQLite。

Oracle

Oracle 数据库提供了 LAST_DAY() 函数,可以获取指定日期所在月份的最后一天:

SELECT SYSDATE,
       LAST_DAY(SYSDATE) "Last",
       LAST_DAY(SYSDATE) - SYSDATE "Days Left"
  FROM DUAL;

SYSDATE   Last       Days Left
--------- --------- ----------
20-MAY-23 31-MAY-23         11

一个月份中的最后一天由会话参数 NLS_CALENDAR 决定。

MySQL

MySQL 提供了 LAST_DAY() 函数,可以返回指定月份的最后一天:

SELECT LAST_DAY(current_date());
LAST_DAY(current_date())|
------------------------+
              2023-05-31|

MariaDB 也提供了相同的 LAST_DAY() 函数。

Microsoft SQL Server

Microsoft SQL Server 提供了 EOMONTH() 函数,返回包含指定日期所在月份的最后一天:

SELECT EOMONTH( '2023-01-01' );

2023-01-31

EOMONTH() 函数包含一个可选的参数,可以增加或减少一个指定的月份数量:

SELECT EOMONTH( '2023-01-01', 4 );

2023-05-31

PostgreSQL

PostgreSQL 没有提供可以直接使用的函数获取月份中的最后一天,需要通过额外的操作达到相同的效果:

SELECT (date_trunc('month', date '2023-05-20') + interval '1 month - 1 day')::date;

date      |
----------+
2023-05-31|

其中,DATE_TRUNC() 函数用于截断日期。示例中的作用是将日期截断到月份的第一天。然后,我们通过增加一个时间间隔获取月份的最后一天。

SQLite

SQLite 提供了 DATE() 函数,可以用于获取月份中的最后一天:

SELECT DATE('2023-05-20', 'start of month', '+1 month', '-1 day');

2023-05-31

示例中函数的处理过程和 PostgreSQL 类似,‘start of month’ 参数表示获取月份的第一天,然后 ‘+1 month’ 获取了下一个月份,最后 ‘-1 day’ 减去一天返回了原日期所在月份的最后一天。文章来源地址https://www.toymoban.com/news/detail-498038.html

到了这里,关于SQL获取月份中的最后一天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包