我正在尝试编写自己的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中编写相同的函数,这样我就不必进行任何代码更改,并且两个数据库都支持它。现在在上面我无法确定我是否要编写该函数应该是第一个参数类型。
由于
答案 0 :(得分:0)
我认为您不需要编写自己的timestampdiff
函数,因为oracle已经有一个函数:EXTRACT
EXTRACT(DAY from (first_date - second_date))
如果由于某种原因,你确实想这样做,那么我认为“datefield”关键字(YEAR,MONTH,DAY等)没有datatype
。
但由于它是一个有限集,你可以在代码中得到一个VARCHAR2
并有一些if
语句......