create table a ( i int, d date )insert into a (i,d) values (1,to_date('1900-1-1','yyyy-mm-dd')); insert into a (i,d) values (2,to_date('1900-1-1','yyyy-mm-dd')+1/1440); insert into a (i,d) values (3,to_date('1900-1-1','yyyy-mm-dd')+2/1440);
select to_date('1999-01-01 12:00:00','yyyy-mm-dd hh24:mi:ss')+1/(24*60)+rownum from dba_tab_cols
select to_char(sysdate+rownum/60/24,'yyyy-mm-dd hh24:mi') from all_tab_columns,all_tab_columns where rownum<100001;
select to_char(to_date('1999-01-01 12:00','yyyy-mm-dd hh24:mi')+rownum/60/24,'yyyy-mm-dd hh24:mi') from all_tab_columns,all_tab_columns where rownum<100001;
16:24:14 SQL> create table t1(a int,b date);表已创建。已用时间: 00: 00: 00.16 16:24:22 SQL> create or replace procedure test(tab_name varchar2,tab_col varchar 2,tab_count number,tab_start varchar2) as 16:24:23 2 v_sql varchar(100); 16:24:23 3 begin 16:24:23 4 for i in 1 .. tab_count loop 16:24:23 5 v_sql:='insert into '||tab_name||'('||tab_col||') values ('|| 'to_date('''||tab_start||''',''yyyymmdd hh24:mi:ss'')+('||i||'-1)/1440)'; 16:24:23 6 execute immediate v_sql; 16:24:23 7 end loop; 16:24:23 8 end; 16:24:23 9 /过程已创建。已用时间: 00: 00: 00.31 16:24:24 SQL> exec test('T1','B',10,'20040101 12:00:00');PL/SQL 过程已成功完成。已用时间: 00: 00: 00.16 16:24:43 SQL> select * from t1; A B ---------- ----------------- 20040101 12:00:00 20040101 12:01:00 20040101 12:02:00 20040101 12:03:00 20040101 12:04:00 20040101 12:05:00 20040101 12:06:00 20040101 12:07:00 20040101 12:08:00 20040101 12:09:00已选择10行。已用时间: 00: 00: 00.31
这是我的代码,我是在SQL/PLUS种运行的 declare var_ruler number; begin for i in 1..100 loop select dbms_random.value(0,6) into var_ruler from dual; insert into buliao(id,ruler,daytime) values(i,var_ruler,to_date('2002-01-01 12:00:00','yyyy-mm-dd hh24:mi:ss')+(i*3)/1440); end loop; commit; end;
i int,
d date
)insert into a (i,d) values (1,to_date('1900-1-1','yyyy-mm-dd'));
insert into a (i,d) values (2,to_date('1900-1-1','yyyy-mm-dd')+1/1440);
insert into a (i,d) values (3,to_date('1900-1-1','yyyy-mm-dd')+2/1440);
to_date('1999-01-01 12:00:00','yyyy-mm-dd hh24:mi:ss')+1/(24*60)+rownum
from dba_tab_cols
16:24:22 SQL> create or replace procedure test(tab_name varchar2,tab_col varchar
2,tab_count number,tab_start varchar2) as
16:24:23 2 v_sql varchar(100);
16:24:23 3 begin
16:24:23 4 for i in 1 .. tab_count loop
16:24:23 5 v_sql:='insert into '||tab_name||'('||tab_col||') values ('||
'to_date('''||tab_start||''',''yyyymmdd hh24:mi:ss'')+('||i||'-1)/1440)';
16:24:23 6 execute immediate v_sql;
16:24:23 7 end loop;
16:24:23 8 end;
16:24:23 9 /过程已创建。已用时间: 00: 00: 00.31
16:24:24 SQL> exec test('T1','B',10,'20040101 12:00:00');PL/SQL 过程已成功完成。已用时间: 00: 00: 00.16
16:24:43 SQL> select * from t1; A B
---------- -----------------
20040101 12:00:00
20040101 12:01:00
20040101 12:02:00
20040101 12:03:00
20040101 12:04:00
20040101 12:05:00
20040101 12:06:00
20040101 12:07:00
20040101 12:08:00
20040101 12:09:00已选择10行。已用时间: 00: 00: 00.31
Samland(samland) 、hippie1024(痞子)方法简单,好用;
CodeMagic(ErrorDetector) 方法也不错,不过好像是个死循环;
ORARichard(没钱的日子好难过啊)好负责啊,谢谢;
zmgowin(隐者(龙祖宗)) 最热心,自从给ORACLK干上以来,我看了你的好多帖子,都不错;
还有别的方法尽管拿出来,谢谢大家的热心回复!
01-一月 -2002 12:42:00 PM
01-一月 -2002 12:45:00 PM
01-一月 -2002 12:48:00 PM
01-一月 -2002 12:57:00 PM
01-一月 -2002 01:00:00 PM
01-一月 -2002 01:03:00 PM
12:57:00的时候回到了01:00:00,而且日期没有增加!
declare
var_ruler number;
begin
for i in 1..100 loop
select dbms_random.value(0,6) into var_ruler from dual;
insert into buliao(id,ruler,daytime) values(i,var_ruler,to_date('2002-01-01 12:00:00','yyyy-mm-dd hh24:mi:ss')+(i*3)/1440);
end loop;
commit;
end;
用控制台直接将表打开,感觉里面的时间有点乱七八糟的,时间不是以24小时的格式显示的。
如:
06-七月 -2004 11:57:00 AM
06-七月 -2004 12:00:00 PM
06-七月 -2004 12:03:00 PM
请问怎么将表中的时间格式改为24小时进制呢?