Oracle日期操作全攻略

数据库 Oracle
文章主要介绍了Oracle日期操作的常用操作,如年、月、日等的表示,简单操作,如如何在系统时间基础上延迟5秒等,还有2个计算方法:计算工作日等。

本文查找了很多相关书籍,查找了近30种Oracle日期常用操作,从基础的年、月、日的表示,到稍微复杂一点的年初至今的天数,再到更难点的计算工作日的方法都有涉及,应该还是比较全面的。

一、Oracle日期操作中的常用操作
1.to_char(sysdate,'q') 季
2.to_char(sysdate,'yyyy')年
3.to_char(sysdate,'mm')月
4.to_char(sysdate,'dd')日
5.to_char(sysdate,'d')星期中的第几天
6.to_char(sysdate,'DAY')星期几
7.to_char(sysdate,'ddd')一年中的第几天
8.extract(year from query_cxrq)年度
9.extract(month from query_cxrq)月份
10.extract(day from query_cxrq)日
例:select extract(month from sysdate) from dual

二、Oracle日期操作中的简单操作
1.上月末的日期:select last_day(add_months(sysdate, -1)) from dual;
2.本月的***一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual
3.本周星期一的日期:select trunc(sysdate,'day')+1 from dual
4.年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;
5.今天是今年的第几周:select to_char(sysdate,'fmww') from dual
6.今天是本月的第几周:SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" FROM dual
7.本月的天数:SELECT to_char(last_day(SYSDATE),'dd') days FROM dual
8.今年的天数:select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
9.下个星期一的日期:SELECT Next_day(SYSDATE,'monday') FROM dual

10.sdate+(5/24/60/60) 在系统时间基础上延迟5秒
11.sdate+5/24/60 在系统时间基础上延迟5分钟
12.sdate+5/24 在系统时间基础上延迟5小时
13.sdate+5 在系统时间基础上延迟5天
14.d_months(sysdate,-5) 在系统时间基础上延迟5月
15.d_months(sysdate,-5*12) 在系统时间基础上延迟5年
16.间隔天数:
两个日期间的天数(日期相减得天数)
select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;

Oracle日期操作中的2个计算方

1.计算工作日方法
create table t(s date,e date);
alter session set nls_date_format = 'yyyy-mm-dd';
insert into t values('2003-03-01','2003-03-03');
insert into t values('2003-03-02','2003-03-03');
insert into t values('2003-03-07','2003-03-08');
insert into t values('2003-03-07','2003-03-09');
insert into t values('2003-03-05','2003-03-07');
insert into t values('2003-02-01','2003-03-31');
这里假定日期都是不带时间的,否则在所有日期前加trunc即可。

2.判断当前时间是上午下午还是晚上
SELECT CASE
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 6 AND 11 THEN '上午'
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 11 AND 17 THEN '下午'
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 17 AND 21 THEN '晚上'
END
FROM dual;

【编辑推荐】

  1. 用触发器实现Oracle操作日志
  2. Oracle日期函数中常用的几大函数
  3. Oracle数据库密码文件的使用与维护
  4. Oracle密码过期与profile的使用方法
  5. Oracle密码文件的作用和说明
责任编辑:王婧瑶 来源: 互联网
相关推荐

2013-04-15 10:48:16

Xcode ARC详解iOS ARC使用

2013-06-08 11:13:00

Android开发XML解析

2009-02-20 11:43:22

UNIXfish全攻略

2009-10-19 15:20:01

家庭综合布线

2014-03-19 17:22:33

2009-12-14 14:32:38

动态路由配置

2022-02-23 07:50:36

LinuLinux操作系统

2009-10-12 15:06:59

2015-03-04 13:53:33

MySQL数据库优化SQL优化

2009-07-04 11:26:12

unix应急安全攻略

2020-12-28 10:50:09

Linux环境变量命令

2010-10-11 13:54:03

Windows Ser

2022-10-21 11:30:42

用户生命周期分析

2009-07-17 17:43:49

Jruby开发Web

2009-11-10 12:08:15

2009-12-17 16:15:00

CCNA640-810

2009-02-12 10:12:00

NAT配置

2010-08-25 14:36:02

DHCP服务器

2019-06-27 11:47:21

Wordpress容器化HTTPS

2020-11-23 15:21:12

Linux环境变量
点赞
收藏

51CTO技术栈公众号