1、获取当天是礼拜几:select to_char(sysdate,'d') from dual; --礼拜天为1,礼拜一为2,类推
2、获取 两个时间段间的 工作日:
select (trunc(&end_dt - &start_dt) -
((case
WHEN (8 - to_number(to_char(&start_dt,'D'))) > trunc(&end_dt - &start_dt) + 1 THEN 0
trunc((trunc(&end_dt - &start_dt) -
(8 - to_number(to_char(&start_dt,'D'))))/7) + 1 END) +
(case
WHEN mod(8 - to_char(&start_dt, 'D'), 7) > trunc(&end_dt - &start_dt) - 1 THEN 0
trunc((trunc(&end_dt - &start_dt) - (mod(8 - to_char(&start_dt,'D'),7) + 1))/7) + 1 END)))
as workingdays
from dual
下面的sql可以直接运行:
select (trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) -
((case
WHEN (8 - to_number(to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'))) > trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) + 1 THEN 0
trunc((trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) -
(8 - to_number(to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'))))/7) + 1 END) +
(case
WHEN mod(8 - to_char(to_date('2010-11-07','yyyy-mm-dd'), 'D'), 7) > trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) - 1 THEN 0
trunc((trunc(to_date('2010-11-11','yyyy-mm-dd') - to_date('2010-11-07','yyyy-mm-dd')) - (mod(8 - to_char(to_date('2010-11-07','yyyy-mm-dd'),'D'),7) + 1))/7) + 1 END)))
as workingdays
from dual
ORACLE
在过去7天内查找给定
工作日
的
日期
('DD-MON-YYYY')(
ORACLE
Find Date ('DD-MON-YYYY') of a given weekday in the past 7 days)我正在尝试创建一个视图,比较具有诸如('每日','星期三','星期二'等)的值的SCHEDULE表和另一个每天更新
日期
的表(REPORT CREATED)(11 -AUG-2017)...
这个结果是oralce数据库根据周六周日是休息日,周一至周五为
工作日
,这个逻辑来
判断
的,如果要作为实际的
工作日
、休息日、节假日的
判断
,还应在这个基础上进行调整,这个SQL可以生成初始化节假日数据表格。MOD函数用来求两个数值相除后的余数,这里巧妙运用每天的星期数对6取余运算,只有1和7对6取余后结果为1,1和7正好代表周日和周六,所以当结果为1表示‘休息日’,否则表示‘
工作日
’。
判断
2023-1-1到2023-12-31这一年的时间,哪些属于
工作日
,哪些属于休息日。
概述关于
Oracle
定时任务管理一般有两个方式,前面已经介绍了DBMS_JOB这种方式,今天主要介绍下另外一种管理方式:DBMS_SCHEDULE。DBMS_SCHEDULE
Oracle
10g之前,可以使用dbms_job来管理定时任务。10g之后,
Oracle
引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理。使...
with t1 as (/*连续的
日期
*/SELECT to_date('2016-01-01', 'yyyy-mm-dd') + (level - 1) as normal_dateFROM dual CONNECT BY TRUNC(to_date('2016-01-01', 'yyyy-mm-dd')) + level - 1 <= TRUNC(to_date('2016-02-29'...
------------------获取法定工作时间,扣除节假日-------------------------- create or replace function getTheWorkDay(begindate in varchar2, maxlongtime in Integer) return date is betday date;--返回获得的
日期
js
最近做到一个关于销售日报的模块,而其中需要有月达成率等几项需要用到
工作日
做分母的情况这样就要得到
工作日
的数量怎样得到两个
日期
之间除了星期天,星期六的天数,
oracle
中可以使用下面的句子select count(*)from ( select rownum rnumfrom all_objectswhere rownum <= to_date('&1') - to_date('&am...
创建一个表格holiday用于灵活存放节假日
日期
(
周末
除外),如果和
周末
日期
重复,则无需添加到该表格中:
create table T_RENT_HOLIDAY (
ID VARCHAR2(45) not null,
HL_DATE DATE,
HL_DESC
第一步:创建一个表格holiday用于灵活存放节假日
日期
(
周末
除外),如果和
周末
日期
重复,则无需添加到该表格中:create table T_RENT_HOLIDAY (ID VARCHAR2(45) not null,HL_DATE DATE,HL_DESC VARCHAR2(500),REMARK VARCHAR2(500),constraint PK_HOLIDAY primary key ...
SQL> select ename,hiredate from emp;ENAME HIREDATE---------- ---------------SMITH 17-DEC-80ALLEN 20-FEB-81WARD 22-FEB-81JONES 02-APR-81MARTIN 28-SEP-81BLAKE 01-MA...
最近做到一个关于销售日报的模块,而其中需要有月达成率等几项需要用到
工作日
做分母的情况这样就要得到
工作日
的数量怎样得到两个
日期
之间除了星期天,星期六的天数,
oracle
中可以使用下面的句子select count(*)from ( select rownum rnum from all_objects where rownum where to_char(
oracle
中 获取当天
日期
的系统方法 SYSDATE
TO_CHAR(‘
日期
字段’, ‘yyyy-mm-dd’) < TO_CHAR(SYSDATE + 1, ‘yyyy-mm-dd’)
AND TO_CHAR(‘
日期
字段’, ‘yyyy-mm-dd’) >= TO_CHAR(SYSDATE, ‘yyyy-mm-dd’)
小于 SYSDATE + 1 指的是 当天及当天以前的
日期
大于 SYSDATE 小于 SYSDATE + 1 就是指 当天
日期
大于 SYSDATE-5
本文实例讲述了JS实现简单获取最近7天和最近3天
日期
的方法。分享给大家供大家参考,具体如下:www.jb51.net JS获取最近三天和最近3天
日期
//获取最近7天
日期
console.log(getDay(0));//当天
日期
console.log(getDay(-7));//7天前
日期
//获取最近3天
日期
console.log(getDay(0));//当天
日期
console.log(getDa...