oracle 自定义函数问题
时间:2011-10-08
来源:互联网
一字段,类型为varchar2,里面存的是日期,但格式为yyyymmdd和yyyy-mm-dd,里面有部分数据为空,求写一自定义函数,能在查询数据时全部转换为yyyy-mm-dd格式,空的显示为空
作者: jya126 发布时间: 2011-10-08
1、不要使用函数,直接操作表就可以
先把表中的这列全部转换成这样的日期类型 to_date(xxxx,'yyyy-mm-dd')
然后再转换成varchar2的日期类型to_char(xxxx,'yyyy-mm-dd')
如tbl_test表中有这样的字段 start_time
select to_char(to_date(t.start_time,'yyyy-mm-dd'),'yyyy-mm-dd') as v_date
from tbl_test t
where t.start_time is not null;
2、如果硬要使用函数的话,也可以,只是效率慢点
SQL code
先把表中的这列全部转换成这样的日期类型 to_date(xxxx,'yyyy-mm-dd')
然后再转换成varchar2的日期类型to_char(xxxx,'yyyy-mm-dd')
如tbl_test表中有这样的字段 start_time
select to_char(to_date(t.start_time,'yyyy-mm-dd'),'yyyy-mm-dd') as v_date
from tbl_test t
where t.start_time is not null;
2、如果硬要使用函数的话,也可以,只是效率慢点
SQL code
CREATE OR REPLACE FUNCTION func_get_char ( i_date in varchar2 ) return varchar2 as v_date varchar2(30); v_return varchar2(30); begin v_date := i_date; if v_date is null then v_return :=null; else v_return := to_char(to_date(v_date,'yyyy-mm-dd'),'yyyy-mm-dd'); end if; return v_return; end func_get_char;
作者: lkz2004 发布时间: 2011-10-08
1楼:
我这样写了一个
create or replace function format_date(num in varchar) return varchar2
as
dt varchar2(20);
begin
if num is null or num=0 or num=' ' then
return null;
elsif instr(num,'-')!=0 then return num;
else
select to_char(to_date(num,'yyyy-mm-dd'),'yyyy-mm-dd') into dt from dual;
return dt;
end if;
exception when others then
DBMS_OUTPUT.put_line ('数据错误');
end;
没用elseif是正确的,我想如果格式正确就返回,但这样报错说函数没返回值,求解
我这样写了一个
create or replace function format_date(num in varchar) return varchar2
as
dt varchar2(20);
begin
if num is null or num=0 or num=' ' then
return null;
elsif instr(num,'-')!=0 then return num;
else
select to_char(to_date(num,'yyyy-mm-dd'),'yyyy-mm-dd') into dt from dual;
return dt;
end if;
exception when others then
DBMS_OUTPUT.put_line ('数据错误');
end;
没用elseif是正确的,我想如果格式正确就返回,但这样报错说函数没返回值,求解
作者: jya126 发布时间: 2011-10-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28