请问如何通过SQL查找季度Stemp差异?

时间:2018-08-14 12:08:03

标签: mysql sql timestampdiff

我使用mysql,并且这些时间列并非都在同一年。

我用这个:

SELECT TIMESTAMPDIFF(QUARTER, DATE_FORMAT('2018-03-30', '%Y-%m-%d'), DATE_FORMAT('2018-09-30', '%Y-%m-%d'))
FROM DUAL;

它返回2,但这是

SELECT TIMESTAMPDIFF(QUARTER, DATE_FORMAT('2018-03-31', '%Y-%m-%d'), DATE_FORMAT('2018-09-30', '%Y-%m-%d'))
FROM DUAL;

返回1。

现在我也希望第二个返回2,因为3月在第1季度和9月在第3季度,我只希望它返回3-1 = 2。

我现在使用这个:

SELECT (YEAR('2018-09-30') - YEAR('2018-03-31')) * 4 + (QUARTER('2018-09-30') - QUARTER('2018-03-31'))
FROM DUAL;

这是正确的方法吗?以及如何正确执行此操作?

1 个答案:

答案 0 :(得分:0)

您只需使用QUARTER()函数即可获得正确答案:

SELECT QUARTER('2018-09-30') - QUARTER('2018-03-31') AS QuarterDifference
FROM DUAL;

QuarterDifference
-----------------
2

这里是一个演示:SQL Fiddle