sql - 计算年龄天数的公式是什么?
问题描述
目前我有一个问题,我无法知道某件事的年龄。我试图让它看起来像:
2 个月零 14 天
DECLARE n_yr INT(11);
DECLARE n_mon INT(4);
DECLARE n_day INT(4);
SELECT TIMESTAMPDIFF( YEAR, prev_dte, cur_dte ) INTO n_yr;
SELECT TIMESTAMPDIFF( MONTH, prev_dte, cur_dte ) % 12 INTO n_mon;
SELECT FLOOR( TIMESTAMPDIFF( DAY, prev_dte, cur_dte ) %30.5375 ) INTO n_day;
IF n_yr THEN
RETURN CONCAT(n_yr, IF(n_yr > 1, ' years', ' year'));
ELSEIF n_mon THEN
RETURN CONCAT(n_mon, IF(n_mon > 1, ' months ', ' month '), n_day, IF(n_day > 1, ' days', ' day'));
ELSE
RETURN CONCAT(n_day, IF(n_day > 1, ' days', ' day'));
END IF;
解决方案
请参阅此示例。
- 我计算从开始到结束日期的月份
- 我计算开始日期 + 月份到结束日期的天数
Start date = 1959-02-01
End. date. 2003-05-04
SELECT CONCAT(
TIMESTAMPDIFF(MONTH,'1959-02-01','2003-05-04'),
' MONTH AND ',
TIMESTAMPDIFF(DAY,'1959-02-01' + INTERVAL
TIMESTAMPDIFF(MONTH,'1959-02-01','2003-05-04') MONTH,'2003-05-04')
,' DAYS');
输出
531 MONTH AND 3 DAYS
推荐阅读
- redis - redis中如何删除Bloom filter过期数据
- angular - 如何解决“CORS 策略:对预检请求的响应未通过访问控制检查”。不添加浏览器插件
- abap - 为什么左外连接像 ABAP CDS 视图和自定义表上的内连接一样工作?
- ios - 如何在iOS swift中实现带有月份、日期和时间的自定义选择器?
- c++ - 字符串作为容器的成员,容器是 C++ 类的成员
- javascript - 按名称对对象数组进行排序
- python - 如何返回字典中可用的行数
- html - 当我将鼠标移到另一个内容上时,如何抓取弹出的内容?
- mule - Anypoint Studio -- 如何检查流的调用层次结构
- networking - docker-compose 关于 cloudbuild / 网络问题