首页 > 解决方案 > 计算2个日期之间的年差,0年为1年

问题描述

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

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

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

标签: mysqlintervalstimestampdiff

解决方案


这会做你想要的吗?看起来你离预期的输出只有一天,所以我只是减去了一天。

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

推荐阅读