求一oracle语句

lihan6415151528 2009-11-27 11:25:43
表名: testdate

字段
id 主键 varchar2
dtime date

现在是空的,

求循环插入此表中当前日期到明年的今天记录的语句


即:


2009-11-27
2009-11-28
2009-11-29
.....
2010-11-26
2010-11-27
...全文
225 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenjjing2lianee 2009-12-16
  • 打赏
  • 举报
回复
很有用
maitianhust 2009-11-29
  • 打赏
  • 举报
回复
good.
[Quote=引用 2 楼 wildwave 的回复:]
如果数据库是10g以上版本
insert into testdate
select rownum,trunc(sysdate)-1+rownum from dual
connect by rownum <=add_months(sysdate,12)-sysdate+1;

如果10g以上,可以变通下
insert into testdate
select rownum,trunc(sysdate)-1+rownum from all_objects
where rownum <=add_months(sysdate,12)-sysdate+1;
[/Quote]
sannychan 2009-11-28
  • 打赏
  • 举报
回复
膜拜二楼的兄弟。学习了,对oracle的函数不太熟悉
liusong_china 2009-11-27
  • 打赏
  • 举报
回复
huangyunzeng2008 2009-11-27
  • 打赏
  • 举报
回复

INSERT INTO testdate
SELECT LEVEL, to_date(to_char(SYSDATE + LEVEL - 1, 'yyyy-mm-dd'),'yyyy-mm-dd')
FROM dual
CONNECT BY to_char(SYSDATE + LEVEL - 1, 'yyyy-mm-dd') <=
to_char(add_months(SYSDATE, 12), 'yyyy-mm-dd');
小灰狼W 2009-11-27
  • 打赏
  • 举报
回复
如果数据库是10g以上版本
insert into testdate
select rownum,trunc(sysdate)-1+rownum from dual
connect by rownum<=add_months(sysdate,12)-sysdate+1;

如果10g以上,可以变通下
insert into testdate
select rownum,trunc(sysdate)-1+rownum from all_objects
where rownum<=add_months(sysdate,12)-sysdate+1;
opps_zhou 2009-11-27
  • 打赏
  • 举报
回复

declare
dbegindate date;
denddate date;
begin
dbegindate := sysdate;
denddate := add_months(dbegindate, 12);

while (dbegindate <= denddate)
loop
insert into testdate values(1, dbegindate);
dbegindate := dbegindate + 1;
end loop;
commit;
end;

sweetBug 2009-11-27
  • 打赏
  • 举报
回复
学习!
oracle_dba_11 2009-11-27
  • 打赏
  • 举报
回复
学习了

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧