判断是否是日期类型的函数是什么?就像SQL SERVER中的 isdate()一样,谢谢

supercdz 2004-04-03 12:01:43
判断是否是日期类型的函数是什么?就像SQL SERVER中的 isdate()一样,谢谢
...全文
314 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baojianjun 2004-04-03
  • 打赏
  • 举报
回复
收藏,謝謝了
welyngj 2004-04-03
  • 打赏
  • 举报
回复
是别人写的:
CREATE OR REPLACE PACKAGE DATE_CONV AS

FUNCTION Is_Date(In_Date IN Varchar2) RETURN DATE;

FUNCTION Is_Date(In_Date IN VARCHAR2, DATE_FORMAT IN VARCHAR2) RETURN DATE;

END;
/


Create or replace package body DATE_CONV AS

FUNCTION Is_Date(In_Date IN Varchar2) RETURN DATE is

v_Date_Format Sys.Nls_Session_Parameters.Value%Type;
v_Date_Value DATE;

Invalid_Date EXCEPTION;
Date_Not_Recognized EXCEPTION;

PRAGMA EXCEPTION_INIT(Invalid_Date,-1858);
PRAGMA EXCEPTION_INIT(Date_Not_Recognized,-1821);

BEGIN
SELECT Value
INTO v_Date_Format
FROM Sys.Nls_Session_Parameters
WHERE Parameter = 'NLS_DATE_FORMAT';
Dbms_Output.Put_Line('Nls_Timestamp_Format = '||v_Date_Format);
SELECT TO_DATE(In_Date,V_Date_Format)
INTO v_Date_Value
FROM Dual;
RETURN v_Date_Value;
EXCEPTION
WHEN Invalid_Date THEN
RETURN NULL;
WHEN Date_Not_Recognized THEN
RETURN NULL;
WHEN OTHERS THEN
Dbms_Output.Put_Line('SQLCODE = '||SQLCODE);
Dbms_Output.Put_Line('SQLERRM = '||SQLERRM);
RETURN NULL;
END Is_Date;

FUNCTION Is_Date(In_Date IN VARCHAR2, DATE_FORMAT IN VARCHAR2) RETURN DATE is

v_Date_Value DATE;

Invalid_Date EXCEPTION;
Date_Not_Recognized EXCEPTION;

PRAGMA EXCEPTION_INIT(Invalid_Date,-1858);
PRAGMA EXCEPTION_INIT(Date_Not_Recognized,-1821);

BEGIN
Dbms_Output.Put_Line('Timestamp_Format = '||Date_Format);
SELECT TO_DATE(In_Date,Date_Format)
INTO v_Date_Value
FROM Dual;
RETURN v_Date_Value;
EXCEPTION
WHEN Invalid_Date THEN
Dbms_Output.put_Line('Invalid Date');
RETURN NULL;
WHEN Date_Not_Recognized THEN
Dbms_Output.put_Line('Date Not Recognized');
RETURN NULL;
WHEN OTHERS THEN
Dbms_Output.Put_Line('SQLCODE = '||SQLCODE);
Dbms_Output.Put_Line('SQLERRM = '||SQLERRM);
RETURN NULL;
END Is_Date;

END;
/
welyngj 2004-04-03
  • 打赏
  • 举报
回复
oracle没有自己的函数,可以自己编写一个
supercdz 2004-04-03
  • 打赏
  • 举报
回复
UP
beckhambobo 2004-04-03
  • 打赏
  • 举报
回复
create function is_date(p_date in date)
return number
as
a date;
begin
a:=p_date;
return 1;
exception
when others then
return 0;
end;
/
select * from tabname where is_date(col)=1;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧