Oracle中ADD_MONTHS()函数详解

文章目录

  • 前言
  • 一、ADD_MONTHS()的语法
  • 二、主要用途
  • 三、测试用例
  • 总结


前言

在Oracle数据库中,ADD_MONTHS()函数用于在日期中添加指定的月数。


一、ADD_MONTHS()的语法

ADD_MONTHS(date, n)

其中,date是一个日期值,n是一个整数值,表示要添加的月数。

此函数将返回一个新的日期,该日期是在给定日期的基础上添加指定月数后得到的。

注意,如果n为正数,则添加的是未来的月数;如果n为负数,则添加的是过去的月数。

二、主要用途

Oracle中的ADD_MONTHS()函数主要用于在给定的日期上添加指定的月份。它接受两个参数,第一个参数是一个日期值,可以是日期数据类型或带有日期值的字符串,第二个参数是要添加的月份数。函数返回一个新的日期,该日期是在给定日期的基础上添加了指定的月份数。

ADD_MONTHS()函数还可以处理闰年和月底的情况。如果给定的日期是闰年的2月29日,并且要添加的月份数导致结果日期是一个非闰年的2月29日,函数会将结果日期调整为2月28日。

此外,如果给定的日期是一个月的最后一天,并且要添加的月份数导致结果日期中没有该月,则函数将返回结果日期中的上个月的最后一天。

三、测试用例

测试SQL:

SELECT 
ADD_MONTHS(TO_DATE('2024-10-01', 'YYYY-MM-DD'), 1)    AS DATE1,
ADD_MONTHS(TO_DATE('2024-10-01', 'YYYY-MM-DD'), -1)   AS DATE2,
ADD_MONTHS(TO_DATE('2024-10-01', 'YYYY-MM-DD'), 1.9)  AS DATE3,
ADD_MONTHS(TO_DATE('2024-10-01', 'YYYY-MM-DD'), 1.1)  AS DATE4,
ADD_MONTHS(TO_DATE('2024-10-31', 'YYYY-MM-DD'), 1)    AS DATE5
FROM DUAL;

测试结果:
在这里插入图片描述

由以上测试用例,可以看出以下几点,尤其需要注意第三点这个特殊情况

1、n可以为正整数,也可以为负整数。

2、n为小数时,不会四舍五入,而会直接取整数部分,小数不分不参与运算。因此1.9和1.1的结果一致。

3、如果给定的日期是一个月的最后一天,并且要添加的月份数导致结果日期中没有该月,则函数将返回结果日期中的上个月的最后一天。比如:10月31日增加1一个月,应为11月31日,但11月没有31日,因此返回11月30日。


总结

总之,ADD_MONTHS()函数是在Oracle中用于处理日期计算和操作的一个非常有用的函数。

如果这篇博客对大家有所帮助,我希望能得到各位的免费点赞收藏,作为对我的鼓励和支持。
同时,也请大家在评论区留下您宝贵的意见和建议,我将非常欢迎。
感谢大家的支持评论收藏!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于vue框架的大学生学业预警系统设计与实现53ify(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:学生,公告信息,成绩信息,科目,学分信息,考勤信息,教师 开题报告内容 基于Vue框架的大学生学业预警系统设计与实现开题报告 一、研究背景与意义 随着高等教育的普及与深入,大学生群体规模日益扩大,其学业管理成…

百元头戴式耳机哪款口碑爆棚+质价比高?2024耳机最强推荐攻略!

在2024年的耳机市场中,百元头戴式耳机凭借其亲民的价格和出色的性能,成为了众多消费者的首选。随着技术的不断进步,这一价位段的耳机不仅在音质上有了显著提升,还在舒适度、降噪能力以及续航时间等方面表现出色。那百元头戴式耳机…

CAN XL协议标准在CANoe中的应用

众所周知,CAN通信技术在汽车领域中,有着非常广泛的应用。从1991年,第一代经典CAN在奔驰S级轿车中首次应用;到2011年,开始第二代CAN总线(即CAN FD)的开发;如今,ISO 11898-…

MyBatis 操作数据库入门

目录 前言 1.创建springboot⼯程 2.数据准备 3.配置Mybatis数据库连接信息 4.编写SQL语句,进行测试 前言 什么是MyBatis? MyBatis是⼀款优秀的 持久层 框架,⽤于简化JDBC的开发 Mybatis操作数据库的入门步骤: 1.创建springboot⼯程 2.数…

kwin- 插件加载绘制流程

1. 配置文件的作用具体是做什么的? 相当于用户强制设置了特效的开关,对于没有写在配置文件里的特效,会检测默认加载值,确定是否加载。写在了文件里的会根据返回的值,来加载特效。 2. 为什么配置文件没有写&#xff0c…

【自用】王道文件管理强化笔记

文章目录 操作系统引导:磁盘初始化文件打开过程角度1文件的打开过程角度2 内存映射的文件访问 操作系统引导: ①CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机) ②)将磁盘的第一块–主引导记录读入内存&…

【Ubuntu】git

文章目录 1.配置SSH key2. 基础知识操作命令1分支branch 如果对git命令使用不熟悉,推荐一个非常棒的git在线练习工具 Learn Git Branching。 https://m.runoob.com/git/git-basic-operations.html 1.配置SSH key ssh-keygen -t rsa -C "YOUR EMAIL"完成…

markdown 中启用音频支持

markdown 中启用音频支持 markdown 默认不支持音频文件&#xff0c;我们通过 html 标签渲染 flask项目 其中音频文件放在 /static/audios/vad_example.wav markdown 内容如下&#xff1a; ## 音频播放器示例 <audio controls ><source src"vad_example.wav…

Flink源码剖析

写在前面 最近一段时间都没有更新博客了&#xff0c;原因有点离谱&#xff0c;在实现flink的两阶段提交的时候&#xff0c;每次执行自定义的notifyCheckpointComplete时候&#xff0c;好像就会停止消费数据&#xff0c;完成notifyComplete后再消费数据&#xff1b;基于上述原因…

go-zero学习

go-zero官网&#xff1a; https://go-zero.dev/docs/tasks 好文&#xff1a; https://blog.csdn.net/m0_63629756/article/details/136599547 视频&#xff1a; https://www.bilibili.com/video/BV18JxUeyECg 微服务基础 根目录下&#xff0c;一个文件夹就是一个微服务。如果微…

力扣16~20题

题16&#xff08;中等&#xff09;&#xff1a; 思路&#xff1a; 双指针法&#xff0c;和15题差不多&#xff0c;就是要排除了&#xff0c;如果total<target则排除了更小的&#xff08;left右移&#xff09;&#xff0c;如果total>target则排除了更大的&#xff08;rig…

kafka的成神秘籍(java)

kafka的成神秘籍 kafka的简介 ​ Kafka 最初是由Linkedin 即领英公司基于Scala和 Java语言开发的分布式消息发布-订阅系统&#xff0c;现已捐献给Apache软件基金会。Kafka 最被广为人知的是作为一个 消息队列(mq)系统存在&#xff0c;而事实上kafka已然成为一个流行的分布式流…

【mmengine】配置器(config)(进阶)继承与导出,命令行修改配置

一、配置文件的继承 1.1 继承机制概述 新建optimizer_cfg.py: optimizer dict(typeSGD, lr0.02, momentum0.9, weight_decay0.0001)新建runtime_cfg.py: device "cuda" gpu_ids [0, 1] batch_size 64 epochs 100 num_workers 8新建resnet50.py: _base_ […

PostgreSQL 小课专栏大纲

PostgreSQL 介绍及发展历史 介绍 发展历史 克隆 PostgreSQL 的源代码 找到其第一次提交记录 看下第一次提交的信息 发布策略、版本号及生命周期 探索 PostgreSQL 中的术语 总结 PostgreSQL 安装 编译方式安装 yum 方式安装 apt 方式安装 Docker 方式运行 Mac/Win…

Observer(观察者模式)

1. 意图 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 在观察者模式中&#xff0c;有两类对象&#xff1a;被观察者&#xff08;Subject&#xff09;和观察者&#xff08;Observer&#xf…

单片机原理与技术

文章目录 一、单片机概述二、单片机的基本原理1. **硬件结构**2. **指令系统** 三、单片机的关键技术1. **编程技术**2. **接口技术**3. **嵌入式系统技术** 四、单片机在现代科技中的应用 一、单片机概述 单片机&#xff0c;全称为单片微型计算机&#xff08;Single-Chip Mic…

Vue 路由设置

为了防止遗忘&#xff0c;记录一下用Vue写前端配置路由时的过程&#xff0c;方便后续再需要用到时回忆。 一、举个例子 假如需要实现这样的界面逻辑&#xff1a; 在HomePage中有一组选项卡按钮用于导航到子页面&#xff0c;而子页面Page1中有一个按钮&#xff0c;其响应事件是…

笔记-stm32移植ucos

文章目录 一、UCOS的基础知识1.1 前后台系统:1.2 RTOS系统可剥夺型内核:前后台系统和RTOS系统 1.3 UCOS系统简介学习方法 二、ucossii移植Step1&#xff1a;在工程中建立存放UCOSS代码的文件夹UCOSIIStep2:向CORE文件夹添加文件Step3:向Config文件夹添加文件Step4:向port文件夹…

LLM4Rec最新工作: 字节发布用于序列推荐的分层大模型HLLM

前几个月 Meta HSTU 点燃各大厂商对 LLM4Rec 的热情&#xff0c;一时间&#xff0c;探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等一系列话题让人兴奋&#xff0c;然而理想有多丰满&#xff0c;现实就有多骨感&#xff0c;尚未有业界公开真正复刻 …

后端复习资料

后端面试资料 语雀-图灵面试题 语雀-javaGuide 小林coding&#xff1a;https://www.xiaolincoding.com/ 面试鸭&#xff1a; https://www.mianshiya.com/ codehot香菜哥&#xff1a;https://codehot.cn/markdown/welfare 面试题&#xff1a; vizard自行整理 牛客Golang社招面…