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

时间:2016-03-24 15:13:20

标签: postgresql date datetime

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

TO_DATE(t0.AESTDTC,' YYYY-MM-DD'),' YYYY-MM-DD'有了这个我能够转换为日期,但现在我需要从这个日期一步提取一年?任何人都可以帮助我吗?

6 个答案:

答案 0 :(得分:58)

尝试

select date_part('year', your_column) from your_table;

select extract(year from your_column) from your_table;

答案 1 :(得分:4)

回答是;

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

答案 2 :(得分:1)

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

SELECT EXTRACT(YEAR FROM CAST(:my_date AS DATE));

SELECT DATE_PART('year', CAST(:my_date AS DATE));

最好使用CAST而不是::,因为可能会与输入参数产生冲突。

答案 3 :(得分:1)

此行解决了我在Postgresql中的相同问题:

SELECT DATE_PART('year', column_name::date) from tableName;

如果您要 month ,那么只需将year替换为month也可以解决此问题。

答案 4 :(得分:0)

您可以尝试touch
如果是文字,则必须将文字转换为日期to_char(now()::date, 'yyyy')

请参见to_char('2018-01-01'::date, 'yyyy')文档Data Type Formatting Functions

答案 5 :(得分:-4)

你也可以在较新版本的sql中使用这个,

”     select year('2001-02-16 20:38:40') as year,' month('2001-02-16 20:38:40') as month, day('2001-02-16 20:38:40') as day, hour('2001-02-16 20:38:40') as hour, minute('2001-02-16 20:38:40') as minute