sysdate转换成字符串的问题 怎样在SQL中把sysdate转换成字符串并加一个不重复的数,例如201102160001,201002160002...最后四位是不重复的数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.创建SEQUENCE:my_SEQUENCE 如果只需要4位的话,SEQUENCE得最大值定为99992.Select To_char(sysdate, 'YYYYMMDD') || (SELECT my_SEQUENCE.currval FROM DUAL)FROM DUAL select to_char(sysdate,'yyyymmdd')||substr(myseq.nextval,1,4) from dual 还得用 Lpad填充到4位数 lpad('2', 4 , '0') 表示 : 0002 scott@SZTYORA> create sequence t_seq;序列已创建。scott@SZTYORA> select to_char(sysdate,'yyyymmdd')||lpad(t_seq.nextval,4,'0') from dual;TO_CHAR(SYSDATE,'YYYYMMDD')||LPAD(T_SEQ.NEXTVAL,------------------------------------------------201102160001 scott@SZTYORA> create sequence t_seq;序列已创建。scott@SZTYORA> select to_char(sysdate,'yyyymmdd')||lpad(t_seq.nextval,4,'0') from dual;TO_CHAR(SYSDATE,'YYYYMMDD')||LPAD(T_SEQ.NEXTVAL,------------------------------------------------201102160001scott@SZTYORA> select to_char(sysdate,'yyyymmdd')||lpad(t_seq.nextval,4,'0') from dual;TO_CHAR(SYSDATE,'YYYYMMDD')||LPAD(T_SEQ.NEXTVAL,------------------------------------------------201102160002 我是在oracle里面试,再转到informatica里面开发,楼上各位的方法都行,只是我需要到informatica按照informatica提供的函数转换,两者是有区别的。不过谢谢各位。 with temp as(select level lv from dual connect by level < 10000)select to_char(sysdate,'yyyymmdd')||case when length(lv) < 5 then LPAD(lv,4,'0') end case from temp 浏览器访问Oracle数据库? 高手请进,提一个小需求,帮忙实现一下 创建视图出现 ora-00293 未找到预期关键字 急问如何解决? 急急急急急!!求一条sql语句???? exists的简单问题 把MS-SQL Server 一条语句翻译成oracle的送100分. =======请教一个SQL语句如何写!======== 关于 ORACLE 8.0.4??? OCILong 调用ORACLE9I数据库时出错(在线等待,立即散分) 在ORACLE中interal用户的口令是什么? 系统表sysman.MGMT_JOB_SCHEDULE做什么用的 oracle在存储过程里创建视图
如果只需要4位的话,SEQUENCE得最大值定为99992.Select To_char(sysdate, 'YYYYMMDD') ||
(SELECT my_SEQUENCE.currval FROM DUAL
)
FROM DUAL
------------------------------------------------
201102160001
------------------------------------------------
201102160001scott@SZTYORA> select to_char(sysdate,'yyyymmdd')||lpad(t_seq.nextval,4,'0') from dual;TO_CHAR(SYSDATE,'YYYYMMDD')||LPAD(T_SEQ.NEXTVAL,
------------------------------------------------
201102160002
select level lv from dual connect by level < 10000
)
select to_char(sysdate,'yyyymmdd')||case when length(lv) < 5 then LPAD(lv,4,'0') end case from temp