Oracle系列之add_months简介以及用法归纳教程
Oracle系列之add_months简介以及用法归纳教程
最近遇到一个SQL统计,需要遇到获取某个日期n个月后的日期,比如统计入职时间超过2年的员工信息
如果不依靠Oracle函数,自己去写有点麻烦,不过通过网上资料,找到Oracle官方提供的add_months函数
1、函数定义
add_months:函数将一个月数(n)添加到一个日期,并返回相隔n月的同一天
官网的图示:
图片来自官网:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions004.htm
2、函数语法
语法:
ADD_MONTHS(date_expression, month)
- 1) date_expression
该date_expression参数是DATE值的表达式,可以传入一个日期类型的参数,可以当前系统时间也可以是数据表保存的时间值
- 2) month
该month参数是一个整数,表示添加的月份数。该month参数可以是零,正或负。正月份值使您可以按月前进到一个日期值,而负月份值可以使您向后退到一个日期值。
3、使用例子
- 查询出半年前的时间
select add_months(sysdate,-6) from dual;
ps:dual是Oracle的系统表,其只有一行一列
- 查询出半年后的时间
select add_months(sysdate,6) from dual;
- 获取上个月的最后一天
SELECTLAST_DAY( ADD_MONTHS(SYSDATE , - 1 ) )
FROMdual;
- 从emp表查询列出来公司就职时间超过2年的员工名单
select ename, hiredatefrom empwhere hiredate <= add_months(sysdate, -2*12);
OR
select ename, hiredatefrom empwhere sysdate >= add_months(hiredate , -2*12);
- 查询出在员工’SCOTT’入职一年后入职的员工的信息
select ename, a.hiredate, salfrom emp a, (select hiredate from emp where ename = 'SCOTT') bwhere a.hiredate > = add_months(b.hiredate, 12);
4、注意要点
如果date_expression是该月的最后一天,则结果日期始终是该月的最后一天,例如,例如,将1个月添加到2021年2月28日将得出2021年3月31日,而不是2021年3月28日
使用add_months函数,有时候需要结合SYSDATE或者dual表使用
5、参考资料
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions004.htm
https://www.oracletutorial.com/oracle-date-functions/oracle-add_months/#:~:text=Oracle%20ADD_MONTHS.%20Oracle%20ADD_MONTHS%20%28%29%20function%20adds%20a,returns%20the%20same%20day%20n%20of%20month%20away
Oracle系列之add_months简介以及用法归纳教程相关推荐
- Oracle中add_months()函数的用法
Oracle中add_months()函数的用法 查询当前时间n个月以前的时间: select add_months(sysdate,-n) from dual; 查询当前时间n个月之后的时间: se ...
- oracle软件工程,.Net软件工程师学用Oracle系列(9):系统函数(上)
.Net程序员学用Oracle系列(9):系统函数(上) 本文大纲 众所周知,Oracle 中系统函数特别多,貌似有好几百个,但实际上大部分函数对于普通应用而言,永远都用不到,本文将主要介绍 Orac ...
- oracle系列(六)OEM与常见故障处理
博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:oracle除了使用命令操作以外, ...
- Oracle中INSTR和SUBSTR的用法
2019独角兽企业重金招聘Python工程师标准>>> Oracle中INSTR和SUBSTR的用法 Oracle中INSTR的用法: INSTR方法的格式为 INSTR(源字符串, ...
- JSON简介以及用法汇总
SON简介以及用法汇总 什么是JSON? JavaScript 对象表示法(JavaScript Object Notation). JSON是一种轻量级的数据交换格式,某个JSON格式的文件内部譬如 ...
- 微软BI 之SSAS 系列 - 多维数据集维度用法之二 事实维度(退化维度 Degenerate Dimension)...
这篇文章是基于上一篇 SSAS 系列 - 多维数据集维度用法之一 引用维度 Referenced Dimension 继续讲解多维数据集维度用法中的事实维度. 事实维度,顾名思义就是把事实表 Fact ...
- oracle分组聚合查询,Oracle中分组查询group by用法规则解析
本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...
- [js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...
- day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法
在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方 ...
最新文章
- MCU多任务提高实时性
- 报错解决:DB::Exception: Scalar subquery returned more than one row.
- python用matplotlib画人口图_Python+Matplotlib画contour图
- excel修改列名_听说你还在手动合并Excel,看看这个吧!?
- 关于交集(Intersect)和差集(Except)
- oracle9i用expdp导出全库,Linux下Oracle 11g数据库全库自动备份(EXPDP)
- RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总
- 伪分布式Hadoop2.x集群的搭建1
- python-批量插入多条数据-pymysql-executemany方法
- 【文献阅读】ResNet-Deep Residual Learning for Image Recognition--CVPR--2016
- 通过helm在k8s上部署spark(伪集群版)
- SPSS正态性检验(图文+数据集)【SPSS 015期】
- win10系统安装SQL Server2005中文版安装教程和下载地址(亲测成功)
- C/C++ typedef用法!
- 汉武帝发起的三大战役(河南、漠南、河西三大战役)
- js Array 标准方法
- FFmpeg 使用命令整理 – 提取音频或视频、提取图片、格式转换等
- java服务器如何群发消息,java TCP编程简单实现一个消息群发功能
- MyBatisPlus 学习笔记_MP的AR模式
- solrCloud配置
热门文章
- SOEM 源码解析 ecx_map_sii
- Vue中components与component的区分
- android友盟埋点,React Native 的友盟统计--打点/埋点
- Ubuntu 7.04--桌面
- 证监计算机类专业知识,2020国考中国证监会计算机类专业考什么?
- matlab 点顺时针排序,按顺时针顺序排序点?
- 逆势高速增长,毫末征战三年诠释量产为王
- 洛谷P2327 [SCOI2005]扫雷 题解
- [CSAW‘22] 世界这么大
- phpyun职位表“phpyun_company_job”添加字段,保存数据到数据库