IBM DB2
DB2本身的内置函数,缺点是是近似值,用法如下:
SELECTtimestampdiff (256, char(timestamp('2017-05-27 23:00:00') - timestamp('2017-05-25 10:40:00'))) AS "间隔年",timestampdiff (128, char(timestamp('') - timestamp(''))) AS "间隔季度",timestampdiff (64, char(timestamp('') - timestamp(''))) AS "间隔月",timestampdiff (32, char(timestamp('') - timestamp(''))) AS "间隔周",timestampdiff (16, char(timestamp('') - timestamp(''))) AS "间隔日",timestampdiff (8, char(timestamp('') - timestamp(''))) AS "间隔时",timestampdiff (4, char(timestamp('') - timestamp(''))) AS "间隔分",timestampdiff (2, char(timestamp('') - timestamp(''))) AS "间隔秒"FROM SYSIBM.SYSDUMMY1;
Oracle
TIMESTAMPDIFF ()函数计算两个日期或日期时间表达式之间的整数时间差。 在这里,可以用参数指定时间差单位,如秒、分钟、小时等。 语法: timestampdiff(interval,datetime1,datetime2) 。
参数说明:
interval :日期比较返回的时间差单位。 可以设置的单位如下:
- frac_second:毫秒
- second:秒
- minute:分钟
- hour:小时
- day:天
- week:周
- month:月
- quarter:季
- year:年
- datetime1:比较的第一个日期
- datetime2:比较的第二个日期
示例
- 直接使用日期格式的字符串比较两个日期。 如下所示。
- 差异: 25秒
select timestampdiff(second,' 2020-07-1811:20:00 ',' 2020-07-1811:20:25 ' ) as time_diff;
- 差异: 5分钟
select timestampdiff(minute,' 2020-07-1811:20:00 ',' 2020-07-1811:25:00 ' ) as time_diff;
- 差异: 5小时
select timestampdiff(hour,' 2020-07-1811:20:00 ',' 2020-07-1816:20:00 ' ) as time_diff;
- 差异: 2天
select timestampdiff (day,' 2020-07-1811:20:00 ',' 2020-07-2011:20:00 ' ) as time_diff;
- 差异:一个季度
select timestampdiff(quarter,' 2020-07-1811:20:00 ',' 2020-12-1811:20:00 ' ) as time_diff;
- 差异:一年
select timestampdiff(year,' 2020-07-1811:20:00 ',' 2021-08-1811:20:00 ' ) as time_diff;
