Sql 需要支持Oracle和DB2的通用日期函数

Sql 需要支持Oracle和DB2的通用日期函数,sql,oracle,db2,Sql,Oracle,Db2,我使用的date函数在DB2中运行良好。但现在当我们切换到Oracle时,它失败了,因为Oracle中没有日期函数。现在我必须更改代码以支持这两个数据库 两个数据库中是否都支持日期函数 coalesce(date(V_ORG_ID_EXPR_DT_FIELD), '12/31/9999') 两个数据库碰巧都有一个名为to_date()的函数。两者都支持引入日期常量的date关键字。两个数据库中都应使用以下选项: coalesce(to_date(V_ORG_ID_EXPR_DT_FIELD,

我使用的date函数在DB2中运行良好。但现在当我们切换到Oracle时,它失败了,因为Oracle中没有日期函数。现在我必须更改代码以支持这两个数据库

两个数据库中是否都支持日期函数

coalesce(date(V_ORG_ID_EXPR_DT_FIELD),  '12/31/9999')

两个数据库碰巧都有一个名为
to_date()
的函数。两者都支持引入日期常量的
date
关键字。两个数据库中都应使用以下选项:

coalesce(to_date(V_ORG_ID_EXPR_DT_FIELD, '<your date format here>'),  date '9999-12-31')
coalesce(截止日期(V_ORG\u ID\u EXPR\u DT\u字段“”),日期“9999-12-31”)

I Get ORA-00932:数据类型不一致:预期日期Get CHAR errorDATE是Oracle中的数据类型。我想您会发现,定义一个名为“DATE”的函数(或函数族),返回一个日期(数据类型),即使不是不可能,也是非常困难的。您最好定义一组用户定义的函数,这些函数在两个数据库中执行相同的功能,说明每个数据库表示日期和时间的方式不同。
DATE
在DB2中严格来说是一个日历日期(例如,YYYY-MM-DD)<代码>日期在Oracle中是一个日历日期加上一个时间(例如,YYYY-MM-DD hh:MM:ss)。你在询问(如)时考虑过这一点吗?还要注意,
MM/DD/yyyyy
不是一种可移植格式,使用ISO格式(YYYY-MM-DD)会更好。为什么要在两个数据库上运行完全相同的语句?还有许多其他差异,因此这不是唯一的问题。