日期在&YYYY-MM-DD'文本格式,现在我需要提取必须是数字的年份部分。我需要一步完成这个转换,因为我需要在其他应用程序中使用,我无法创建新变量。
TO_DATE(t0.AESTDTC,' YYYY-MM-DD'),' YYYY-MM-DD'有了这个我能够转换为日期,但现在我需要从这个日期一步提取一年?任何人都可以帮助我吗?
答案 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_date
是yyyy-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
“