日期:2014-05-16  浏览次数:20840 次

如何在有月份和时间的表中插入数据
请问 我要建立一个表A 这个表有4个字段 分别是 s_id NUMBER (8);
  month VARCHAR2 (2 BYTE);
  day NUMBER (2);
FLAG NUMBER (1);

要实现s_id 从1到13 
month 从1到12
day 应该为能自动识别出所属的月份是30 天 31天 还是28天
falg 全部为0即可。
可以写过程实现 但这个应该如何写 才能把这些数据插入到表中呢?

------解决方案--------------------
根据month可以得到这个月的最后一天,使用last_day()函数,与本月第一天相减再加1即可得到本月的天数
------解决方案--------------------

insert into a
(s_id ,month,day ,FLAG )
select sid,to_char(ymd,'mm'),to_char(last_day(ymd),'dd'),'0'
from(
select add_months(to_date('201001','yyyymm'),rownum-1) ymd,rownum sid
from dual
connect by rownum < 13
)
------解决方案--------------------
探讨
insert into a
(s_id ,month,day ,FLAG )
select sid,to_char(ymd,'mm'),to_char(last_day(ymd),'dd'),'0'
from(
select add_months(to_date('201001','yyyymm'),rownum-1) ymd,rownum sid
from dual
co……

------解决方案--------------------
探讨
insert into a
(s_id ,month,day ,FLAG )
select sid,to_char(ymd,'mm'),to_char(last_day(ymd),'dd'),'0'
from(
select add_months(to_date('201001','yyyymm'),rownum-1) ymd,rownum sid
from dual
co……

------解决方案--------------------
只知道connect by是Oracle的递归查询
具体用法还没弄清