Comment extraire année et mois de la date dans PostgreSQL?

Je veux sélectionner sql: SELECT "year-month" from table group by "year-month" AND order by date , où année-mois – format pour la date “1978-01”, “1923-12”. sélectionnez to_char de couse work, mais pas “right” order.

 to_char(timestamp, 'YYYY-MM') 

Vous dites que l’ordre n’est pas “correct”, mais je ne vois pas pourquoi c’est faux (du moins jusqu’à l’an 10000).

Utilisez la méthode date_trunc pour tronquer le jour (ou autre chose que vous voulez, par exemple, semaine, année, jour, etc.)

Exemple de regroupement des ventes des commandes par mois:

 select SUM(amount) as sales, date_trunc('month', created_at) as date from orders group by date order by date DESC; 

Vous pouvez tronquer toutes les informations après le mois en utilisant date_trunc(text, timestamp) :

 select date_trunc('month',created_at)::date as date from orders order by date DESC; 

Vous pouvez utiliser la fonction EXTRACT pgSQL

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

Pour plus de détails PGSQL Date-Time

1ère option

 date_trunc('month', timestamp_column)::date 

Il maintiendra le format de la date avec tous les mois commençant au premier jour.

Exemple:

 2016-08-01 2016-09-01 2016-10-01 2016-11-01 2016-12-01 2017-01-01 

2ème option

 to_char(timestamp_column, 'YYYY-MM') 

Cette solution proposée par @yairchu a bien fonctionné dans mon cas. Je voulais vraiment jeter les infos du jour.