博客
关于我
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/

你可能感兴趣的文章
Pandas matplotlib 无法显示中文
查看>>
pandas PIVOT_TABLE保持索引
查看>>
Pandas Plots:周末的单独颜色,x 轴上漂亮的打印时间
查看>>
pandas to_latex() 转义数学模式
查看>>
Pandas | 频数统计很简单,但这5 种技巧你使用过吗?
查看>>
Pandas 中文官档 ~ 基础用法4
查看>>
pandas 中的 for 循环真的很糟糕吗?我什么时候应该关心?
查看>>
Pandas 中的多索引旋转
查看>>
Pandas 中的日期范围
查看>>
pandas 中的时间序列箱线图
查看>>
Pandas 使用指南
查看>>
pandas 分组并使用最小值更新
查看>>
pandas 叶上的热图
查看>>
pandas 均值(mean), 均值填充NA(fill_na)
查看>>
Pandas 对数据框的布尔比较
查看>>
Pandas 将多个数据帧与时间戳索引对齐
查看>>
pandas 将通话数据分割为15分钟的间隔
查看>>
pandas 找到局部最大值和最小值
查看>>
Pandas 按年份分组,按销售列排名,在具有重复数据的数据框中
查看>>
pandas 按日期和年份分组,并汇总金额
查看>>