04-oracle时间函数
add_months(sysdate,x)x月之后的日期;
last_day(sysdate)指定日期所在月份的最后一天;
next_day(sysdate,'星期x')当前日期后的下一个星期x;
months_between(sysdate,hiredate) 两个日期之间的月份间隔;
extract(year/month/day from sysdate;year/month/day from date '2019-10-1')从日期字符串中分离出年月日;取得时间间隔
select hiredate 雇佣日期,
last_day(hiredate) 雇佣当月的最后1天,
next_day(hiredate,'星期二') 雇佣后第一个星期二的日期,
add_months(hiredate,6) 雇佣6个月后的日期,
months_between(sysdate,hiredate) 当前日期到雇佣日期之间的月数
from emp;

--sqlplus下默认只显示年月日不显示时间,设置以24小时制和12小时制的语句分别如下:
SQL> alter session set nls_date_format='yyyy-mm-dd hh12:mi:ss';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
2019-04-10 09:54:56
SQL> alter session set nls_date_format='yyyy-mm-dd hh12:mi:ss';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
2019-04-10 09:54:56

--日期-数字=日期
--日期+数字=日期
--日期-日期=数字(天数)
--日期+日期 错误语法
select sysdate,sysdate+3,sysdate-3 from dual;

select ename, hiredate,sysdate-hiredate 雇佣至今天数,(sysdate-10)-hiredate 到十天前的雇佣天数 from emp;

--add_months(当前日期,x) x月之后/之前的日期
select sysdate 当前日期,
add_months(sysdate,3) 三个月之后的日期,
add_months(sysdate,-3) 三个月之前的日期,
add_months(sysdate,60) 六十个月之后的日期
from dual;

select ename,hiredate 雇佣日期,add_months(hiredate,3)雇佣日期3个月后的日期 from emp;

--next_day(sysdate,'星期X') 下个星期X的日期
select sysdate 当前日期,
next_day(sysdate,'星期日') 下个星期日的日期,
next_day(sysdate,'星期二') 下个星期二的日期
from dual;

--last_day(sysdate)指定日期所在月份的最后一天
select sysdate,last_day(sysdate) from dual;

--查询雇佣日期为所在月份倒数第三天的员工信息。
select ename,job,
hiredate,last_day(hiredate) 雇佣日期坐在月的最后一天
from emp
where last_day(hiredate)-2=hiredate;

--months_between(sysdate,hiredate) 两个日期之间的月份间隔数
--查询员工的雇佣总月数和年数
select ename,job,hiredate,
trunc(months_between(sysdate,hiredate)) 当前日期和雇佣日期间隔的月数,
trunc(months_between(sysdate,hiredate)/12) 雇佣年数即雇月数除以12
from emp;

--员工入职至今的共x年x月x天
select ename 姓名, hiredate 雇佣日期,
trunc(months_between(sysdate,hiredate)/12) 年数,
trunc(mod(months_between(sysdate,hiredate),12)) 月数,
trunc(sysdate-add_months(hiredate,months_between(sysdate,hiredate))) 天数
from emp;

--extract(year/month/day from sysdate;year/month/day from date '2019-10-1')从日期字符串中分离出年月日
select
extract(year from sysdate) 年,
extract(month from sysdate) 月,
extract(day from sysdate) 日
from dual;

select
extract(day from time_one-time_two)
from(
select
to_timestamp('2019-10-1 19:12:33','yyyy-mm-dd hh24:mi:ss') time_one,
to_timestamp('2018-9-11 22:10:55','yyyy-mm-dd hh24:mi:ss') time_two
from dual);
select a 日期1,b 日期2,a-b 日期1减日期2,
extract(day from a-b) 日期1减日期2的day,
extract(year from a)-extract(year from b) 日期1减日期2的year
from
(
select to_timestamp('2019-12-14 18:34:45','yyyy-mm-dd hh24:mi:ss') a,
to_timestamp('1998-1-30 22:33:15','yyyy-mm-dd hh24:mi:ss') b
from dual
);

04-oracle时间函数的更多相关文章
- ORACLE时间函数(SYSDATE)深入理解
ORACLE时间函数(SYSDATE)深入理解 加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add ...
- oracle 时间函数
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from ...
- ORACLE时间函数(SYSDATE)简析
ORACLE时间函数(SYSDATE)简析 分类: 原文地址:ORACLE时间函数(SYSDATE)简析 作者:skylway 加法 select sysdate,add_months(sysdate ...
- Oracle时间函数numtoyminterval()
格式:NumToYMInterval(n, interval_unit); n: 数值类型 interval_unit: 'YEAR', 'MONTH' ,或其他可以转换成这两个值之一的表达式 N ...
- Oracle时间函数
YYYY年 Q季度 MM月 month月 WW当年第几周 W本月第几周 DDD 当年第几天 DD当月第几天 D当周内第几天 DY当周内星期几 day当周内星期几 HH或HH12:12进制小时数 HH2 ...
- [转载]ORACLE日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
- [转]ORACLE日期时间函数大全
本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间: ::2 ...
- Oracle时间日期函数
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- Oracle TO_DATE() 函数格式化时间【全】
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显 ...
随机推荐
- Dubbo服务启动依赖检查
dubbo 官方文档地址:http://dubbo.io/User+Guide-zh.htm 项目中存在服务之间存在循环依赖,启动时总是报错,通过修改启动检查check=false解决,下面是dubb ...
- 一些..C#知识点总结
C# 知识点汇总 (其实C#与Java多少有区别,对于咱这个幼儿园大班生来说) 1.认识C#程序 (1)namespqce关键字 namespqce(命名空间)是C#组织代码的方式,它的作用类似于Ja ...
- Currying and Uncurrying Js
//反科里化Function.prototype.uncurrying = function() { var _this = this; return function() { return Func ...
- ios7 - Custom UItabbar has a gap in the bottom
3down votefavorite Im trying to create a custom UITabbar using images for the selected and unselec ...
- JS 前端构建工具gulpjs的使用介绍及技巧
gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...
- github注册流程
- Reporting Service服务SharePoint集成模式安装配置(6、安装Reporting services Add-in for SharePoint 外接程序)
第五步骤 : 安装Reporting services Add-in for SharePoint 外接程序 RS 外接程序是在 SharePoint 服务器上运行用于 SharePoint 产品的 ...
- Arduino I2C + 温湿度传感器AM2321
(2015.5.17:本日志的内容有所更新,参见<使用Arduino Wire Library读取温湿度传感器AM2321>.) AM2321是广州奥松电子生产的数字式温湿度传感器.虽是国 ...
- 获取服务端https证书
最近开发一个需求,涉及获取服务端https证书.一般进行https调用我们都不太关心底层细节,直接使用WebClient或者HttpWebRequest来发送请求,这两种方法都无法获取证书信息,需要用 ...
- WinForm中Button的使用
自定义样式 先要清除系统风格影响:this.FlatStyle = FlatStyle.Flat; FlatStyle.Flat FlatStyle.System FlatStyle.Standard ...