我在患者表中有 patient_age列,该列中的年龄格式将如下所示,
10D8M45Y
(表示 10 D ays 8 M onths 45 ÿ耳)
我需要一个Postgresql Query,可以输出这样的输出,
45 Years 8 Months 10 Days
谢谢。
答案 0 :(得分:1)
该列中的年龄格式,例如'YY“ Years” mm“ Months” DD“ Days”。
SELECT TO_CHAR(age(current_date, '2017-04-17 00:00:00.0'), 'YY "Years" mm "Months" DD "Days"') as length_of_service
答案 1 :(得分:0)
如上所述,您希望像这样计算查询时的年龄...
SELECT extract(year from AGE(end_date, NOW()))||' Years '||
extract(month from AGE(end_date, NOW()))||' Months '||
extract(day from AGE(end_date, NOW()))||' Days '||
extract(hour from AGE(end_date, NOW()))||' Hours '||
extract(minute from AGE(end_date, NOW()))||' Minutes' as formatted_age
FROM my_table
可能是因为您正在处理一些已硬编码到字段中的内容。
SELECT
extract(DAY FROM INTERVAL '10D8M45Y') || ' days ' ||
extract(MONTH FROM CAST(REPLACE('10D8M45Y', 'M', 'Mon') AS INTERVAL)) || ' months ' ||
extract(YEAR FROM INTERVAL '10D8M45Y') || ' years ';