SQL获取月份中的最后一天

news/2024/7/9 21:43:22 标签: sql, 数据库, oracle, postgresql, mysql

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

Oracle

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

sql">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() 函数,可以返回指定月份的最后一天:

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

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

Microsoft SQL Server

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

sql">SELECT EOMONTH( '2023-01-01' );

2023-01-31

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

sql">SELECT EOMONTH( '2023-01-01', 4 );

2023-05-31

PostgreSQL

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

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

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

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

SQLite

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

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

2023-05-31

示例中函数的处理过程和 PostgreSQL 类似,‘start of month’ 参数表示获取月份的第一天,然后 ‘+1 month’ 获取了下一个月份,最后 ‘-1 day’ 减去一天返回了原日期所在月份的最后一天。


http://www.niftyadmin.cn/n/348890.html

相关文章

如何使用GPT-3.5生成智能代码注释,提高前端代码可读性

部分数据来源:ChatGPT 作为一名前端开发人员,我们经常需要重复性的工作,如编写HTML和CSS样式,编写代码注释,撰写文档等。此外,我们还需要通过大量的阅读和研究来解决一些技术问题。这些都是我们日常工作中…

framebuffer和texture

今天开始快速过一遍games202文章,就不看视频了。碰到文章里一些地方还是不太明白,问了下gpt。 framebuffer和texture的关系是什么? Framebuffer和Texture是OpenGL中两个不同的概念,但它们之间有一定的关系。Framebuffer是一个Ope…

CE做业(6)

1、判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查一次磁盘剩余空间。 &#xff08;1&#xff09;剩余空间 取出剩余空间 &#xff08;1&#xff09;剩余空间 &#xff08;2&#xff09;判断是否<20 #…

朗诵素材-《少年正是读书时》(两角色主持朗诵)

少年正是读书时 1、少年正是读书时 男&#xff1a;我们生活在/古老的土地上 男&#xff1a;我们拥有/共同的梦想 女&#xff1a;那朗朗的书声/那浓浓的墨香 女&#xff1a;都在告诉我们 合&#xff1a;少年正是&#xff0f;读书时 2、为何要读书 男&#xff1a;养心&am…

[Nacos] Nacos Client获取调用服务的提供者列表 (四)

文章目录 1.Nacos Client获取调用服务的提供者列表1.1 从Ribbon的负载均衡入手到Nacos Client获取调用服务的提高者列表1.2 getServers方法返回分析1.3 通过selectInstances方法查找Instances实例1.4 获取到要调用服务的serviceInfo Nacos Client 从Ribbon负载均衡调用服务。 …

C++中set的用法

博主简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的人。 博主主页&#xff1a;陈童学哦 所属专栏&#xff1a;CSTL 前言&#xff1a;Hello各位小伙伴们好&#xff01;欢迎来到本专栏CSTL的学习&#xff0c;本专栏旨在帮助大家了解…

screen使用方法

"screen" 是一个在 Linux 和 Unix 系统中的终端多路复用工具&#xff0c;它允许你在单个终端窗口中创建多个会话&#xff0c;并在这些会话之间切换。使用 "screen" 可以在一个终端窗口中同时运行多个命令行程序&#xff0c;或者在断开连接后仍然保持程序运…

RSA证书算法实现及其应用

密钥管理是加密算法中非常重要的一个环节&#xff0c;因为密钥的管理直接影响着加密算法的安全性。在公钥密码系统中&#xff0c;RSA算法是一种广泛应用的加密算法&#xff0c;它具有较高的安全性和效率。本文将介绍RSA证书算法的实现和密钥长度的计算方法。 一、RSA证书算法的…