SQL获取月份中的最后一天

news/2025/2/11 9:55:55/

上一篇文章中我们介绍了如何利用 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’ 减去一天返回了原日期所在月份的最后一天。


http://www.ppmy.cn/news/74101.html

相关文章

STM32G474开发板初步入门与编程实战

目录 STM32G474开发板简介 STM32CubeMX软件配置 编程实战 结束语 欢迎大家,我今天要给大家介绍的是STM32G474开发板的基本入门和编程实战。首先,我们要明白,STM32G474是由STMicroelectronics公司生产的一款高性能微控制器。这款微控制器配…

【java】java实现同步方式

文章目录 前言为何要使用同步?java实现同步的五种方式: 1.同步方法:2. 同步代码块3.使用特殊域变量(volatile)实现线程同步4.使用重入锁实现线程同步5.使用局部变量实现线程同步 前言 为何要使用同步? 避免多线程数据不一致&…

简易电路特性测试仪

摘 要 随着电子行业的发展,生活中使用到的音频电子设备也越来越多,在音频设备中经常使用到的基本放大电路出现的故障也随之增多。在智能设备发展迅速的前景之下,决定利用抗干扰能力较强的微控制器制作一个简易电路特性测试仪用来检测基本放大…

Linux系统设置swap大小,创建swap,top虚拟内存,VIRT RES SH

物理内存: 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching, 因此很有必要手动清理系统缓存释放内存。 1.先执行sync,先把buffe中的数据…

Fuzzing Configurations of Program Options

摘要: 尽管许多真实世界的项目都附带配置启用/禁用功能,fuzz大多被用于测试单配置这些项目。在这项工作中,我们首先进行实证研究,以了解程序配置影响起毛性能。我们发现限制竞选一个配置会导致未能覆盖大量的代码。我们还观察到不同的项目配置贡献不同的大量的代码覆盖率,挑战…

详解c++STL—容器set/multiset

目录 1、set基本概念 1.1、功能 1.2、本质: 1.3、set和multiset区别 2、set构造和赋值 2.1、功能描述 2.1、构造 2.3、赋值 2.4、示例 3、set大小和交换 3.1、功能描述 3.2、函数原型 3.2、示例 4、set插入和删除 4.1、功能描述 4.2、函数原型 4.3…

【redis】redis为什么这么快?高性能设计之epoll和I/O多路复用深度解析

系列文章目录 文章目录 系列文章目录前言一、before 学习I/O多路复用之前多路复用 需要解决的问题 一对一性能差结论 需要让一个进程同时处理多个连接 二、I/O多路复用模型1、是什么?一句话 2、redis单线程如何处理那么多并发客户端连接,为什么单线程&am…

机器学习Dry Bean分析

1. introduction This 本项目旨在对DryBean数据集进行详细分析,以揭示数据中的潜在信息和特征关系。DryBean数据集包含了7种不同品种的土耳其干豆数据,每种豆子都有16个特征,这些特征可以帮助我们了解豆子的形状、大小和形态。通过对这些特征…