问题如下:交易日一般是周一到周五,周末一般不开,节假日也不开?

1. 交易日一般是周一到周五,周末一般不开,节假日也不开。
a. 设计一个表,存储交易日信息,可以根据输入的日期判断该日期是否交易日。
b. 列出SQL,查询某一日期之后的第一个交易日。

开心每一天1111
浏览 166回答 2
2回答

料青山看我应如是

--工作日期参数表(说明 iswork :0-不是工作日 1-是工作日 。设置说明:1)如果正常工作日(1-5)中有非工作日,需要在此维护设iswork设为0,2)如果周六周日为工作日,则需要在此维护iswork=1。create table dict_workdate(workdate varchar2(10),iswork number(2),primary key workdate);--判断是否为交易日函数CREATE OR REPLACE FUNCTION isworkdate(in_date date) Return numberisresult varchar2(256);l_week number(1);l_workdate varchar2(10);l_iswork number(1);beginselect to_char(in_date,'D') into l_week from dual;l_workdate := to_char(in_date,'yyyy-mm-dd') ;if l_week in (1,7) thenselect nvl(max(iswork),0) into l_isworkfrom dict_workdate where workdate=l_workdate ;elseselect nvl(max(iswork),1) into l_isworkfrom dict_workdate where workdate=l_workdate ;end if;return l_iswork;EXCEPTIONWHEN OTHERS THENreturn null;END;

慕斯王

单纯通过周几判断是否交易日比较简单,看datepart(weekday,@Date)的返回值,大于1小于7就是周一到周五,如果考虑节假日的话,应该需要建一张节假日的表,判断的时候先剔除表中的日期。判断下一个交易日(不考虑节假日情况):declare @Get_Date_JYR datetimeset @Get_Date_JYR ='2011.12.03'while datepart(weekday,@Get_Date_JYR) in (1,7)beginselect @Get_Date_JYR=@Get_Date_JYR+1endselect @Get_Date_JYR
打开App,查看更多内容
随时随地看视频慕课网APP