计算以0年为1年的2个日期之间的年差

Calculate year difference between 2 dates with 0 year as 1 year

我有 2 个日期要比较,所以我可以计算两个日期之间的年数。如果天数少于 365 天,那么我使用 interval 将其设为 1 年。但是,如果两个日期在一天中相似,我会遇到问题,例如 2019-10-152020-10-15 将显示为 2 年,而我希望它显示为 1 年。这是我的代码,但不是我想要的结果:

SELECT
  TIMESTAMPDIFF(
    YEAR,
    '2019-10-15',
    '2020-10-15' + INTERVAL 1 YEAR
  ) AS `year`
FROM
  dob

结果:

我想要的是:

2019-10-152020-10-14 = 1 year

2019-10-152020-10-15 = 1 year

2019-10-152020-10-16 = 2 year

我怎样才能做到这一点?提前致谢。

这是否符合您的要求?看来您距离预期输出只有一天,所以我只减去一天。

SELECT 
TIMESTAMPDIFF
( YEAR, '2019-10-15',
 '2020-10-15' 
+ INTERVAL 1 YEAR
- INTERVAL 1 DAY ) 
AS `year` 
FROM dob