Oracle提供的日期函数可以满足我们日常用到的对日期的所有操作。通常,在设计表结构的时候,我们也常常会遇到日期类型的字段。如果业务里面需要类似汇总给定日期所在周的资料,汇总给定日期所在月的各周资料等操作,那直接写SQL语句将比较复杂。
所以,我是直接在数据里面建立一个日期的主档表,在里面将可能用到的统计字段先计算后,后面业务逻辑的汇总只需连接这个表就可以得到想要的结果。
下面是这个表的建立和数据的生成过程,可以在里面新加字段以满足不同的需求,相关的索引可以根据自己的需要去建立!
同时欢迎大家一起讨论更好的方法!不足之处,请不吝指教!
1. 建立日期主档表
CREATE TABLE DATE_MAIN
(
DATE_TIME DATE,
DAY_OF_WEEK INTEGER,
WEEK_OF_YEAR INTEGER,
MONTH_OF_YEAR INTEGER,
WEEK_OF_MONTH INTEGER,
YEAR_AND_MONTH CHAR(7),
FIRST_DAY_OF_WEEK DATE,
LAST_DAY_OF_WEEK DATE,
FIRST_DAY_OF_WEEK_OF_MONTH DATE,
LAST_DAY_OF_WEEK_OF_MONTH DATE
)
2. 插入日期资料
declare
i integer;
begin_date char(10);