137 votes

Comment extraire l'année et le mois d'une date dans PostgreSQL sans utiliser la fonction to_char() ?

Je veux sélectionner sql : SELECT "year-month" from table group by "year-month" AND order by date où année-mois - format de la date "1978-01", "1923-12". Sélectionnez la lettre "to_char" de "couse work". mais pas le "bon" ordre :

to_char(timestamp_column, 'YYYY-MM')

1 votes

Pourquoi l'ordre n'est pas bon avec to_char ?

1 votes

Vote pour fermer comme non clair parce qu'il n'est pas clair pourquoi to_char() n'est pas acceptable.

12voto

Singhak Points 911

Vous pouvez utiliser la fonction EXTRACT de pgSQL.

EX- date = 1981-05-31
EXTRACT(MONTH FROM date)
it will Give 05

Pour plus de détails Date-heure PGSQL

2voto

Anurag Bhardwaj Points 29

Cela fonctionne pour les fonctions "plus grand que" mais pas pour "moins que".

Par exemple :

select date_part('year',txndt)
from "table_name"
where date_part('year',txndt) > '2000' limit 10;

fonctionne bien.

mais pour

select date_part('year',txndt)
from "table_name"
where date_part('year',txndt) < '2000' limit 10;

Je reçois une erreur.

0 votes

Il fonctionne pour les fonctions supérieures à, mais pas pour les fonctions inférieures à. Par exemple : select date_part('year',txndt) FROM "table_name" where date_part('year',txndt) > '2000' limit 10 ; fonctionne bien. mais pour select date_part('year',txndt) FROM "hpi_validator_q3". "cdm_inv_exceptions" where date_part('year',txndt) < '2000' limit 10 ; j'obtiens une erreur.

2 votes

Il ne s'agit pas d'une réponse. Si vous avez une question, posez plutôt une nouvelle question plutôt que d'ajouter votre question en tant que réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X