如何在PostgreSQL表中仅从日期取年

qaxu7uf2  于 2022-09-21  发布在  PostgreSQL
关注(0)|答案(1)|浏览(140)

我在PostgreSQL中有一个这样的表:
姓名|道布

ABC|‘2011-03-03’
XYZ|‘2009-01-01’

我应该使用什么查询来获取以下格式的输出数据(仅年份而不是日期),我还想检索仅大于2010年的数据:

姓名|道布

ABC|‘2011’

ycl3bljg

ycl3bljg1#

道布使用to_char格式化。

select "Name", to_char(DOB, 'yyyy') DOB 
from the_table
where extract('year' from DOB) > 2010;

如果道布是字符类型而不是date类型,则必须首先将其转换为date

select "Name", to_char(DOB::date, 'yyyy') DOB 
from the_table
where extract('year' from DOB::date) > 2010;

如果以文本表示的日期具有“月/日/年”格式,则使用to_date将其转换为date

select "Name", to_char(to_date(DOB, 'mm/dd/yyyy'), 'yyyy') DOB 
from the_table
where extract('year' from to_date(DOB, 'mm/dd/yyyy')) > 2010;

不相关但将日期存储为格式化文本。您的数据类型为date

相关问题