sql - 如何在 postgresql 选择查询中仅从 age() 函数中获取年份

标签 sql postgresql

以下查询返回:

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() 将其转换为日期

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;

关于sql - 如何在 postgresql 选择查询中仅从 age() 函数中获取年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40484345/

相关文章:

c# - 通过回滚 NUnit、Sql Server 和 UI 测试中的事务来维护数据库已知状态的正确方法

mysql - 使用 mySQL 空间索引运行空间查询的速度有多快?

json - Recursive Common Table Expression中的Postgres JSON操作错误

java - JPA/Hibernate 适用于 Postgresql,但不适用于 Mysql

django - 同一行的插入正在发生,如果 iti 已经存在于 DB Django-rest-framework,PostgreSQL 中,如何拒绝插入

sql - PostgreSQL:用作表达式的子查询返回的多行

Postgresql:将 % 附加到数组元素的开头和结尾

php - SQL 语法错误;

sql - 在 SQL 查询之间获取多个日期范围并相应地添加数据

mysql - MYSQL CASE WHEN语句如何写多个查询条件?