1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

以下的文章主要向我们介绍的是如何对Oracle时间日期的操作,以及如何用Oracle时间日期操作来计算工作日的方法的集体描述,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。

Oracle时间日期操作

sysdate+(5/24/60/60) 在系统时间基础上延迟5秒

sysdate+5/24/60 在系统时间基础上延迟5分钟

sysdate+5/24 在系统时间基础上延迟5小时

sysdate+5 在系统时间基础上延迟5天

add_months(sysdate,-5) 在系统时间基础上延迟5月

add_months(sysdate,-5*12) 在系统时间基础上延迟5年

上月末的日期:

selectlast_day(add_months(sysdate,-1))fromdual;

本月的***一秒:

selecttrunc(add_months(sysdate,1),'MM')-1/24/60/60fromdual

本周星期一的日期:

selecttrunc(sysdate,'day')+1fromdual

年初至今的天数:

selectceil(sysdate-trunc(sysdate,'year'))fromdual;

今天是今年的第几周 :

selectto_char(sysdate,'fmww')fromdual

今天是本月的第几周:

SELECTTO_CHAR(SYSDATE,'WW')-
TO_CHAR(TRUNC(SYSDATE,'MM'),'WW')
+1AS"weekOfMon"FROMdual

本月的天数

SELECTto_char(last_day(SYSDATE),'dd')daysFROMdual

今年的天数

selectadd_months(trunc(sysdate,'year'),12)
-trunc(sysdate,'year')fromdual

下个星期一的日期

SELECTNext_day(SYSDATE,'monday')FROMdual

如何用Oracle时间日期操作来计算工作日方法

createtablet(sdate,edate); 
altersessionsetnls_date_format='yyyy-mm-dd'; 
insertintotvalues('2003-03-01','2003-03-03'); 
insertintotvalues('2003-03-02','2003-03-03'); 
insertintotvalues('2003-03-07','2003-03-08'); 
insertintotvalues('2003-03-07','2003-03-09'); 
insertintotvalues('2003-03-05','2003-03-07'); 
insertintotvalues('2003-02-01','2003-03-31'); 

这里假定日期都是不带时间的,否则在所有日期前加trunc即可。

selects,e,e-s+1total_days, 
trunc((e-s+1)/7)*5+length
(replace(substr('01111100111110',
to_char(s,'d'),mod(e-s+1,7)),'0',''))work_days 
fromt; 
droptablet;v 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11942.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。