web-dev-qa-db-fra.com

Comment extraire l'année de DATE dans POSTGRESQL

La date est au format texte 'AAAA-MM-JJ', je dois maintenant extraire la partie année qui doit être numérique. J'ai besoin de cette conversion pour être faite en une seule étape, depuis que je dois utiliser dans une autre application où je ne peux pas créer de nouvelle variable.

TO_DATE (t0.AESTDTC, 'AAAA-MM-JJ'), 'AAAA-MM-JJ' avec cela, j'ai pu convertir à ce jour, mais maintenant je dois extraire l'année de cette date en une seule étape? Quelqu'un peut-il m'aider?

40
Karthi

Essayer

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

ou

select extract(year from your_column) from your_table;
66
flaviodesousa

la réponse est;

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
5
Hasan BINBOGA

Choisissez-en un, où :my_date est un paramètre d'entrée de chaîne de yyyy-MM-dd format:

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

ou

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

Mieux vaut utiliser CAST que :: car il peut y avoir des conflits avec les paramètres d’entrée.

3
Zon