如何通过sql查找季度stemp diff?

qkf9rpyu  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(352)

我使用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,因为第1季度的3月和第3季度的9月,我只想要它返回3-1=2。
我现在用这个:

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

这样做对吗?怎么才能做到这一点?

r7xajy2e

r7xajy2e1#

只需使用 QUARTER() 功能:

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

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

下面是一个演示:SQLFiddle

相关问题