IBM DB2

DB2本身的内置函数,缺点是是近似值,用法如下:

  1. SELECT
  2. timestampdiff (256, char(timestamp('2017-05-27 23:00:00') - timestamp('2017-05-25 10:40:00'))) AS "间隔年",
  3. timestampdiff (128, char(timestamp('') - timestamp(''))) AS "间隔季度",
  4. timestampdiff (64, char(timestamp('') - timestamp(''))) AS "间隔月",
  5. timestampdiff (32, char(timestamp('') - timestamp(''))) AS "间隔周",
  6. timestampdiff (16, char(timestamp('') - timestamp(''))) AS "间隔日",
  7. timestampdiff (8, char(timestamp('') - timestamp(''))) AS "间隔时",
  8. timestampdiff (4, char(timestamp('') - timestamp(''))) AS "间隔分",
  9. timestampdiff (2, char(timestamp('') - timestamp(''))) AS "间隔秒"
  10. FROM SYSIBM.SYSDUMMY1;

Oracle

TIMESTAMPDIFF ()函数计算两个日期或日期时间表达式之间的整数时间差。 在这里,可以用参数指定时间差单位,如秒、分钟、小时等。 语法: timestampdiff(interval,datetime1,datetime2)

参数说明:

  • interval :日期比较返回的时间差单位。 可以设置的单位如下:

    • frac_second:毫秒
    • second:秒
    • minute:分钟
    • hour:小时
    • day:天
    • week:周
    • month:月
    • quarter:季
    • year:年
  • datetime1:比较的第一个日期
  • datetime2:比较的第二个日期

示例

  1. 直接使用日期格式的字符串比较两个日期。 如下所示。
  • 差异: 25秒
  1. select timestampdiff(second' 2020-07-1811:20:00 '' 2020-07-1811:20:25 ' ) as time_diff
  • 差异: 5分钟
  1. select timestampdiff(minute' 2020-07-1811:20:00 '' 2020-07-1811:25:00 ' ) as time_diff
  • 差异: 5小时
  1. select timestampdiff(hour' 2020-07-1811:20:00 '' 2020-07-1816:20:00 ' ) as time_diff
  • 差异: 2天
  1. select timestampdiff (day' 2020-07-1811:20:00 '' 2020-07-2011:20:00 ' ) as time_diff
  • 差异:一个季度
  1. select timestampdiff(quarter' 2020-07-1811:20:00 '' 2020-12-1811:20:00 ' ) as time_diff
  • 差异:一年
  1. select timestampdiff(year' 2020-07-1811:20:00 '' 2021-08-1811:20:00 ' ) as time_diff