mysql - 计算2个日期之间的年差,0年为1年
问题描述
我有 2 个日期要比较,所以我可以计算两个日期之间的年数。如果天数少于 365 天,那么我interval
将其设为 1 年。但是,如果两个日期在一天中相似,例如当我希望它显示为 1 年2019-10-15
时2020-10-15
将显示为 2 年,我会遇到问题。这是我的代码,但不是我想要的结果:
SELECT
TIMESTAMPDIFF(
YEAR,
'2019-10-15',
'2020-10-15' + INTERVAL 1 YEAR
) AS `year`
FROM
dob
结果:
我想要的是:
2019-10-15
至2020-10-14
=1 year
2019-10-15
至2020-10-15
=1 year
2019-10-15
至2020-10-16
=2 year
我怎样才能做到这一点?提前致谢。
解决方案
这会做你想要的吗?看起来你离预期的输出只有一天,所以我只是减去了一天。
SELECT
TIMESTAMPDIFF
( YEAR, '2019-10-15',
'2020-10-15'
+ INTERVAL 1 YEAR
- INTERVAL 1 DAY )
AS `year`
FROM dob
推荐阅读
- javascript - 使用 SignalR 获取角色中的用户列表
- visual-studio-code - VS 代码编辑器.autoIndent
- python-3.x - pd.Series(pred).value_counts() 如何获取数据框中的第一列?
- r - 用 R-base 中的值标记的条形标题
- python - 您如何防止用户在用户输入中输入乱码并防止他们使用全部大写或全部小写字母?
- json - Concat ARM 模板磁盘名称
- javascript - 在从 express 后端获取后对未决的承诺做出反应
- java - 我已经编写了构造函数类,但我需要对其进行测试。我怎么做?
- django - Django 连接 vCenter 并列出虚拟机
- android - “PG”类抛出 java.lang.AbstractMethodError