如何从POSTGRESQL中的DATE中提取年份

Kar*_*thi 45 postgresql datetime date

日期是'YYYY-MM-DD'文本格式,现在我需要提取必须是数字的年份部分.我需要在单步中完成此转换,因为我需要在其他应用程序中使用,我无法创建新变量.

TO_DATE(t0.AESTDTC,'YYYY-MM-DD'),'YYYY-MM-DD'与此我能够转换为日期,但现在我需要从这个日期一步提取一年?谁能帮我?

fla*_*usa 81

尝试

select date_part('year', your_column) from your_table;
Run Code Online (Sandbox Code Playgroud)

要么

select extract(year from your_column) from your_table;
Run Code Online (Sandbox Code Playgroud)

  • [`提取VS date_part`](/sf/answers/2691149821/) (3认同)

小智 6

这一行解决了我在 postgresql 中的同样问题:

SELECT DATE_PART('year', column_name::date) from tableName;
Run Code Online (Sandbox Code Playgroud)

如果你想要month,那么简单地用替换也year可以month解决这个问题。


小智 5

答案是:

select date_part('year', timestamp '2001-02-16 20:38:40') as year,
       date_part('month', timestamp '2001-02-16 20:38:40') as month,
       date_part('day', timestamp '2001-02-16 20:38:40') as day,
       date_part('hour', timestamp '2001-02-16 20:38:40') as hour,
       date_part('minute', timestamp '2001-02-16 20:38:40') as minute
Run Code Online (Sandbox Code Playgroud)


Zon*_*Zon 5

从中选择一个,其中:my_dateyyyy-MM-dd格式的字符串输入参数:

SELECT EXTRACT(YEAR FROM CAST(:my_date AS DATE));
Run Code Online (Sandbox Code Playgroud)

或者

SELECT DATE_PART('year', CAST(:my_date AS DATE));
Run Code Online (Sandbox Code Playgroud)

更好地使用CAST::因为可能与输入参数发生冲突。