oracle中是否具有“判定字符串是否符合日期格式”的函数,类似于sqlserver的ifdate。

例:2011-01-23符合日期格式2013-11-33不符合日期格式createorreplacefunctionifdate(datestringinvarchar2... 例:
2011-01-23 符合日期格式
2013-11-33 不符合日期格式
 create or replace function ifdate(datestring in varchar2,result out integer) return integer is
  v_result integer;
  begin
  select to_date(datestring,'yyyy-mm-dd') from dual;
v_result:=1;
  return(v_result);
  Exception
  when others then
   v_result:=0;
return(v_result);
end ifdate;
这样写有问题么?
展开
 我来答
电子科技小百科
高粉答主

2020-04-29 · 繁杂信息太多,你要学会辨别
知道答主
回答量:4367
采纳率:0%
帮助的人:67.8万
展开全部

oracle中有“判定字符串是否符合日期格式”的函数,解决方法如下:

1、首先除了sysdate函数外oracle中还包含其它日期函数,如add_months(日期,数字)在指定的日期上加入指定的月数,求出新的日期。

2、除此之外还有next_day(日期,星期一)函数,计算当前日期的下个星期一时间。

3、还有last_day(日期),用来求出指定日期所在月份的最后一天。

4、还有另外一个months_between(日期,指定日期),可以计算出两个日期相差的月数。

5、如果给出的指定日期是字符串,在计算的时候就需要先将字符串进行转换成日期然后再进行计算,使用to_date(日期,'格式'),就完成了。

badkano
推荐于2017-11-29 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
create or replace function isdate
(p in varchar2)
return varchar2
is
result date;
begin
result:= to_date(p,'yyyy-mm-dd');
return to_char(result,'yyyy-mm-dd');
exception
when others then return '0';
end;

正常的日期返回本身

否则返回0


测试1

select isdate('2014-01-01') from dual

测试2

select isdate('2014-01-33') from dual

 -------------

那象你那样这样写不就行吗

你那个报错

create or replace function isdate
(p in varchar2)
return int
is
result date;
begin
result:= to_date(p,'yyyy-mm-dd');
return 1;
exception
when others then return 0;
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咖啡嘤0o
2014-07-07 · TA获得超过144个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:140万
展开全部
oracle 没有类似函数,要么自己写个函数,强转报错即不是日期格式。
追问
Oracle 自定义function能够添加异常处理过程么,这个函数怎么写,能否告知一下关键步骤。
追答
“badkano”把函数贴给你了,我就不多嘴了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式