我使用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;
这样做对吗?怎么才能做到这一点?
1条答案
按热度按时间r7xajy2e1#
只需使用
QUARTER()
功能:下面是一个演示:SQLFiddle