如何在PostgreSQL中从完整年龄格式计算出生日期?
在PostgreSQL中从年龄字符串计算出生日期
核心思路
把57 years 5 months 7 days这类字符串格式的年龄转换为PostgreSQL支持的interval类型,再用当前日期减去该时间间隔得到出生日期,最后格式化目标格式。
操作步骤与示例
- 单值测试写法
直接针对单个年龄字符串计算,执行以下SQL:
SELECT TO_CHAR(CURRENT_DATE - '57 years 5 months 7 days'::interval, 'yyyy-mm-dd') AS birth_date;
- 批量处理表中数据
如果年龄数据存储在表(比如user_info)的age_desc字段中,查询语句如下:
SELECT TO_CHAR(CURRENT_DATE - age_desc::interval, 'yyyy-mm-dd') AS birth_date FROM user_info;
注意事项
- 确保年龄字符串格式严格匹配
X years Y months Z days结构,多余空格或拼写错误会导致转换失败; - 若年龄仅包含部分维度(比如只写
25 years 3 months),该方法依然适用,PostgreSQL会自动识别缺失的时间维度。
内容的提问来源于stack exchange,提问作者Ebillson GRAND JEAN
相关产品推荐
相关产品推荐

