博客
关于我
oracle创建日历表,并写入数据
阅读量:395 次
发布时间:2019-03-05

本文共 1481 字,大约阅读时间需要 4 分钟。

创建并填充Oracle日历表的步骤说明

为了创建并填充一个包含日期信息的Oracle表,我们可以按照以下步骤进行操作。以下将详细介绍创建表结构以及数据插入的具体实现方法。

表结构创建首先,我们需要创建一个名为tdate的表,其字段定义如下:

  • dt DATE类型,不允许为空
  • year NUMBER(4),表示年份
  • month VARCHAR2(4),表示月份
  • day VARCHAR2(4),表示日期
  • week VARCHAR2(10),表示星期几的英文名称
  • weeknum VARCHAR2(4),表示ISO标准的星期数
  • xq NUMBER(2),表示当月的第几周
  • qr NUMBER(2),表示当月的第几周
  • bourse_week VARCHAR2(4),表示国际金融市场的标准星期数

数据插入接下来,我们需要将数据插入到该表中。以下是具体的SQL语句:

insert into tdate (t.dt, t.year, t.month, t.day, t.week, t.weeknum, t.xq, t.qr, t.bourse_week)select trunc(everyDay) as dt,       to_char(everyday,'yyyy') as yr,       to_char(everyday,'mm') as mm,       to_char(everyday,'dd') as dd,       to_char(everyday,'dy') as dayofweek,       to_char(everyday,'WW') as weeknum,       to_char(everyday,'IW') as bourse_weekfrom (    select to_date('20170101','yyyymmdd') + level - 1 as everyDay    from dual    connect by level <= (        last_day(to_date('20220101','yyyymmdd')) - to_date('20170101','yyyymmdd') + 1    ));

通过上述SQL语句,我们可以生成从2017年1月1日至2022年1月1日之间的所有日期,并将这些日期插入到tdate表中。每一天的记录都会包含相应的年份、月份、日期、星期几以及多种星期表示方式。

查询示例为了检索特定日期的记录,可以使用以下查询:

SELECT * FROM (    WITH x AS (        SELECT add_months(trunc(sysdate, 'y'), -12) + level - 1 tdate        FROM dual        CONNECT BY level <= (            add_months(trunc(sysdate, 'y'), 12) - trunc(sysdate, 'y')        )    SELECT tdate, to_char(tdate, 'day'), rownum rn    FROM x    WHERE to_char(tdate, 'day') = '星期五') WHERE rn = 20

上述查询将返回所有星期五的日期记录,并根据行数rn=20来筛选特定记录。

通过以上方法,我们可以成功创建并填充一个包含丰富日期信息的Oracle日历表。

转载地址:http://xrdzz.baihongyu.com/

你可能感兴趣的文章
PANDA:基于多列对数据表的行运行计算,并将输出存储在新列中
查看>>
PandoraFMS 监控软件 SQL注入漏洞复现
查看>>
PandoraFMS 监控软件 任意文件上传漏洞复现
查看>>
PanTools多网盘登录神器
查看>>
Papyrus项目常见问题解决方案
查看>>
Parallel.ForEach使用示例
查看>>
Parallel.ForEach的基础使用
查看>>
parallels desktop for mac安装虚拟机 之parallelsdesktop密钥 以及 parallels desktop安装win10的办公推荐可以提高办公效率...
查看>>
parallelStream导致LinkedList遍历时空指针的问题
查看>>
Parameter ‘password‘ not found. Available parameters are [md5String, param1, username, param2]
查看>>
ParameterizedThreadStart task
查看>>
Paramiko exec_命令的实时输出
查看>>
Spring security之管理session
查看>>
paramiko模块
查看>>
param[:]=param-lr*param.grad/batch_size的理解
查看>>
spring mvc excludePathPatterns失效 如何解决spring拦截器失效 excludePathPatterns忽略失效 拦截器失效 spring免验证拦截器不起作用
查看>>
Spring Cloud 之注册中心 EurekaServerAutoConfiguration源码分析
查看>>
Parrot OS 6.2 重磅发布!推出全新 Docker 容器启动器
查看>>
Parrot OS 6.3 发布!全面提升安全性,新增先进工具,带来更高性能
查看>>
ParseChat应用源码ios版
查看>>