我使用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;
这是正确的方法吗?以及如何正确执行此操作?
答案 0 :(得分:0)
您只需使用QUARTER()
函数即可获得正确答案:
SELECT QUARTER('2018-09-30') - QUARTER('2018-03-31') AS QuarterDifference
FROM DUAL;
QuarterDifference
-----------------
2
这里是一个演示:SQL Fiddle