Comment obtenir le dernier jour du mois dans postgres?

Comment trouver le dernier jour de l'os du mois postgres?
J'ai une date de colonnes stockées en tant que numérique(18) dans le format(AAAAMMJJ)
Je suis en train d'essayer de la rendre la date à l'aide de

to_date("act_dt",'YYYYMMDD') AS "act date"

ensuite, trouver le dernier jour de cette date:
comme ceci:

(select (date_trunc('MONTH',to_date("act_dt",'YYYYMMDD')) + INTERVAL '1 MONTH - 1 day')::date)

mais il me donne cette erreur:

ERROR: Interval values with month or year parts are not supported
  Detail: 
  -----------------------------------------------
  error:  Interval values with month or year parts are not supported
  code:      8001
  context:   interval months: "1"
  query:     673376
  location:  cg_constmanager.cpp:145
  process:   padbmaster [pid=20937]
  -----------------------------------------------

Toute aide?

Postgres version:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.874

  • to_date convertit uniquement les chaînes de dates. Si votre colonne contient l'époque Unix valeurs, vous devez utiliser to_timestamp: to_timestamp(act_dt)::date.
  • ERREUR: la fonction to_timestamp(numérique) n'existe pas Hint: Pas de fonction correspond au nom donné et les types d'argument. Vous pouvez avoir besoin d'ajouter de type explicite jette. ?
  • to_timestamp s'attend à ce double précision, essayez de coulée de votre colonne d'elle: to_timestamp(act_dt::float8)::date. BTW, pourriez-vous confirmer que cette colonne magasins de l'époque Unix valeurs de temps? Si ce n'est pas le cas, vous devez fournir une explication dans votre question, qu'est-ce exactement le stockage.
  • Vous pouvez faire votre calcul en remplaçant votre INTERVAL '1 MONTH - 1 day' par INTERVAL '1 MONTH' - interval '1 day'
  • la colonne a de telles valeurs act_dt 20131014 20130614 20150124 20110128 20120825
  • OK, alors, de la ferraille tout ce que j'ai écrit, @Houari réponse doit travailler pour vous. Bien que je recommanderais fortement pour stocker les valeurs de date à l'aide de type date (bien sûr, si ce n'est pas un système d'héritage, où il n'est pas à vous de décider des types de colonnes).
  • SÉLECTIONNEZ (date_trunc ("MOIS", Current_Date) + INTERVAL '1 MOIS - 1 jour')::DATE;