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
);

最新文章

  1. UEditor的使用
  2. Arcgis 几何网络分析
  3. java获得本机IP,名称等
  4. 排序小结(C++版)
  5. jq的bind用法
  6. Oracle优化笔记
  7. PNPOLY - Point Inclusion in Polygon W. Randolph Franklin
  8. Java网络编程注意事项3
  9. crawler_大型舆情架构图
  10. 在ASP.NET Core中如何支持每个租户数据存储策略的数据库
  11. 金融量化分析【day112】:初识量化交易
  12. eclipse连接github,链接不上 cannot open git-upload-pack(git-receive-pack)
  13. ZIP解压缩工具类
  14. 解析3D标签云,其实很简单
  15. Jmeter自己jar包的引用
  16. python3.6配置libsvm2.2
  17. pycharm的安装(图文)
  18. s4-6 二层交换
  19. 20155217《网络对抗》Exp05 MSF基础应用
  20. 基于at91rm9200的i2c分析(DS1307实时时钟芯片)

热门文章

  1. dapper利用DynamicParameters构建动态参数查询
  2. UVa 11996 Jewel Magic (splay + Hash + 二分)
  3. CodeForces 347B Fixed Points (水题)
  4. Matlab神经网络
  5. Tango Java API常数
  6. Delphi webbrowser 的一些方法
  7. Partition--分区切换
  8. TSQL--SORT MERGE JOIN
  9. xmlns 与 targetNamespace 的解释
  10. HAOI2010 最长公共子序列