以下查询返回:

SELECT AGE(cast(dob AS date)) 
FROM mas_patient_details;

age
----------
39 years 5 mons 19 days
13 years 2 days
69 years 2 days
41 years 11 mons 25 days

这个查询返回:

SELECT age(cast(dob as date)) 
FROM mas_patient_details 
WHERE age <= 59;

age
----------
39 years 5 mons 19 days
13 years 2 days
69 years 2 days
41 years 11 mons 25 

如何简单地从这些查询中提取年份?

推荐答案

如果fu列的数据类型为DATE,则可以使用

SELECT EXTRACT(YEAR FROM fu) FROM mydate;

如果是varchar,则使用to_date()将其转换为date

SELECT EXTRACT(YEAR FROM to_date(fu, <your pattern>)) FROM mydate;

就你而言:

select EXTRACT(YEAR FROM age(cast(dob as date))) 
from mas_patient_details 
where age <= 59;

Postgresql相关问答推荐

如何在postquist中修剪第一/后文件名

在Haskell中定义新类型与持久化类型的惯用方法

在Postgres游标中从一行变量中减go 另一行变量

对表执行 DISABLE TRIGGER ALL 是否也会禁用 FK 指向该表?

如何在typeorm和嵌套js中将运行时变量设置为postgresql

如何使用有限的varchar在postgres中存储单词é

如何在 postgresql 上使用 sqlalchemy 进行正确的 upsert?

如何在 PostgreSQL hstore 中使用通配符查询值

运算符不存在:integer = integer[] 在使用 ANY 的查询中

如何更改几何列的 SRID?

Heroku PGError:operator does not exist: character varying = integer

升级到 OSX Mavericks 后修复 postgresql

如何引用使用 ON CONFLICT 中的函数的唯一索引?

从 PostgreSQL 中的时间戳获取日期

如何使用 node-postgres 将多行正确插入 PG?

在 MAC OS X 10.6 for PostgreSQL 上设置 SHMMAX 等值

使用 Postgresql 在过滤器中制作 Sqlalchemy 使用日期

使用 Postgresql 数据库(OSX Lion)创建 Rails 3.1 应用程序

postgres regexp_replace 只想允许 a-z 和 A-Z

防止 PostgreSQL 中的递归触发器