我有一個包含出生日期列、死亡日期列和資料集提取日期的表格。
我想將每個人的年齡計算為他們的死亡日期或提取日期的年齡 - 而不是當前日期 - 使用新的“年齡”列。我現在還不能完全解決。
示例資料:
當前表
| person_id | 出生日期時間時間 | 死亡日期時間 | 提取日期 |
|---|---|---|---|
| 1234 | 1980-04-01T00:00:00 | 空值 | 2021-12-31 |
| 8765 | 1925-05-04T00:00:00 | 2018-05-T00:00:00 | 2021-12-31 |
| 9102 | 1974-05-17T00:00:00 | 2021-01-31T00:00:00 | 2021-12-31 |
| 5678 | 2019-09-01T00:00:00 | 空值 | 2021-12-31 |
| 3456 | 1947-04-01T00:00:00 | 2016-06-14T00:00:00 | 2021-12-31 |
期望的輸出
| person_id | 出生日期時間時間 | 死亡日期時間 | 提取日期 | 年齡 |
|---|---|---|---|---|
| 1234 | 1980-04-01T00:00:00 | 空值 | 2021-12-31 | 41 |
| 8765 | 1925-05-04T00:00:00 | 2018-05-T00:00:00 | 2021-12-31 | 93 |
| 9102 | 1974-05-17T00:00:00 | 2021-01-31T00:00:00 | 2021-12-31 | 47 |
| 5678 | 2019-09-01T00:00:00 | 空值 | 2021-12-31 | 2 |
| 3456 | 1947-04-01T00:00:00 | 2016-06-14T00:00:00 | 2021-12-31 | 69 |
uj5u.com熱心網友回復:
考慮以下方法
select *,
date_diff(ifnull(death_datetime, extract_date), date(birth_datetimetime), year) as age
from your_table
如果應用于您問題中的樣本資料 - 輸出是

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435892.html
上一篇:使用SQL計算庫存在站點上的天數
