DECODE (
SIGN(TO_DATE (date1,'yyyy/mm/dd hh24:mi:ss') - TABLE_DATE2),
-1,
TABLE_DATE2,
TO_DATE(date1,'yyyy/mm/dd hh24:mi:ss')
)
上述为利用decode和sign函数获取两个日期中时间更新的那个日期,同样的可以用作获取数字更大的数据等等
DECODE(条件,结果1,返回值1,结果2,返回值2,缺省);
SIGN(n):n小于0则返回-1,n大于0则返回1,n等于0则返回0;
因此上述函数解释为,从数据表中获取的时间TABLE_DATE2与外来数据date1对比,当date1小于数据表中时间TABLE_DATE2(date1比TABLE_DATE2时间更早)时,则获取TABLE_DATE2,否则获取date1