varchar转化date类型(错误返回默认值)的fuction

本文介绍了一个用于将固定格式的VARCHAR类型字符串转换为DATE类型的Oracle函数。该函数适用于长度为8的日期字符串,如'YYYYMMDD'。若输入格式正确,则成功转换;否则返回NULL。此外,还提供了一种特殊情况处理,即对于年份为'9999'的数据,统一设置为'9999-12-31'。
部署运行你感兴趣的模型镜像
create or replace function verifydate(verdate in varchar2) return date
as
/* TITLE      : <P>varchar转date方法</P>    
    * DESCRIPTION: <P>适合字符串长度为8的varchar类型进行校验</P>                        
    * COPYRIGHT  : <P>COPYRIGHT (C) 2017</P>   
    * COMPANY    :   
    * AUTHOR     :   zZBoring       
    * VERSION    : 1.0         
    * DATE       : 2017-05-16       
    */
begin
  --最大时间为99991231  不符合时间格式的返回null
  if 4 <= length(verdate) and '9999' = substr(verdate,0,4) 
     then return to_date('99991231','yyyymmdd');
     else if 8 = length(verdate)
        then return to_date(verdate,'yyyymmdd');
        else return null;
     end if;
  end if;
exception
   WHEN OTHERS THEN 
     return null;

end verifydate;



别名与关键字相同时可以加引号 
SELECT verifydate('99990231') "date" FROM dual;

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值