PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 28/05/2018 09:41:44

big1
Membre

Numeric to date

Bonjour,
en version 10

je fais la commande COPY:

\COPY xxx_sql_service_response_time_by_day FROM '/u02/app/alcopy/list_xxx_sql_service_response_time_by_day_20160901.csv.13583'
 with delimiter ';' encoding 'ISO-8859_5'  CSV HEADER;

psql:xxx_xxx_sql_service_response_time_by_day.sql:28: ERROR:  invalid input syntax for type numeric: "2016/09/28 00:29"
CONTEXT:  COPY xxx_sql_service_response_time_by_day, line 2, column begin_interval_t: "2016/09/28 00:29"

Je veux changer le type de champ:

xxx=# ALTER TABLE xxx_sql_service_response_time_by_day ALTER COLUMN begin_interval_t TYPE date;
ERROR:  column "begin_interval_t" cannot be cast automatically to type date
HINT:  You might need to specify "USING begin_interval_t::date".

Je fais comme c'est demandé:

xxx=# ALTER TABLE xxx_sql_service_response_time_by_day ALTER COLUMN begin_interval_t TYPE date USING begin_interval_t::date;
ERROR:  cannot cast type numeric to date
LINE 1: ...UMN begin_interval_t TYPE date USING begin_interval_t::date;

Connaitriez-vous une solution?

D'avance merci.

Hors ligne

#2 28/05/2018 10:48:10

gleu
Administrateur

Re : Numeric to date

Il faudrait déjà savoir ce que contient cette colonne (comment elle est codée) pour trouver l'expression qui permet de convertir ce champ en date. De plus, ce n'est pas une date que vous voulez,vu que votre CSV contient date et heure (il s'agit plutôt dans ce cas de timestamp).


Guillaume.

Hors ligne

#3 28/05/2018 17:38:47

dverite
Membre

Re : Numeric to date

Pour le ALTER COLUMN vous pouvez metttre USING NULL s'il n'y avait pas de contenu avant ou s'il est intraduisible dans le nouveau type.

Hors ligne

Pied de page des forums