如何为oracle编写自己的timestampdiff函数

时间:2012-10-26 04:45:16

标签: mysql oracle oracle11g

我正在尝试编写自己的timestampdiff(DAY,first_date,second_date)函数,该函数与MySql tumestampdiff函数相同。

但我无法理解第一个参数的数据类型,以便它可以接受日,月或年的关键工作词。

需要专家评论,因为函数参数中有哪种数据类型?

其次,我在哪里可以看到mysql内置函数的实现。

确定要添加更多清晰度:

我有一个查询select * from application a where timestampdiff(DAY,a.created_date, CURRENT_TIMESTAMP(3)) >= 30;

我希望上面的查询应该在oracle和mysql中运行。

希望你明白我的观点。我想在oracle中编写相同的函数,这样我就不必进行任何代码更改,并且两个数据库都支持它。

现在在上面我无法确定我是否要编写该函数应该是第一个参数类型。

由于

1 个答案:

答案 0 :(得分:0)

我认为您不需要编写自己的timestampdiff函数,因为oracle已经有一个函数:EXTRACT

EXTRACT(DAY from (first_date - second_date))

如果由于某种原因,你确实想这样做,那么我认为“datefield”关键字(YEAR,MONTH,DAY等)没有datatype
但由于它是一个有限集,你可以在代码中得到一个VARCHAR2并有一些if语句......