Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Copy from : ERROR: date/time field value out of range



Merci  à tous, après cette commande le chargement se passe correctement :
set datestyle to 'dmy';  
 
Voici quand même des personnes qui m'ont demandé des infos suivantes :

pg_bench=# show datestyle ;
 DateStyle
-----------
 ISO, MDY
(1 row)

pg_bench=# select name, setting from pg_settings where name ~* 'lc';
    name     |   setting
-------------+-------------
 lc_collate  | en_US.UTF-8
 lc_ctype    | en_US.UTF-8
 lc_messages | en_US.UTF-8
 lc_monetary | en_US.UTF-8
 lc_numeric  | en_US.UTF-8
 lc_time     | en_US.UTF-8
(6 rows)


Cordialement
 
Le 30/07/07, Eric Brison <eric(dot)brison(at)anakeen(dot)com> a écrit :
David Tokmatchi a écrit :
>
> Bonjour
>
> J'utilise Copy pour charger les données depuis un fichier plat dans
> une table dont voici la description :
>
> Column | Type | Modifiers
> -----------+-----------------------------+-----------
> to_ref | bigint | not null
> to_entity | character(40) | not null
> to_date | timestamp without time zone | not null
> to_time | timestamp without time zone | not null
> to_occ | text |
>
> La commande copy est la suivante :
>
> copy toto from '/tmp/x.dat' delimiters '~'
>
> dans mon fichier x.dat il y a les données suivants ( un million
> d'enregistrement ):
> ...
> 3454495~TQKQD ~12.03.2007 00:00:00~01.01.1900 17:35:26~
> 3454496~HHKKF ~12.03.2007 00:00:00~01.01.1900 17:35:34~
> 3454497~BBIIL ~12.03.2007 00:00:00~01.01.1900 17:35:39~
> 3454501~IKKFFS ~12.03.2007 00:00:00~01.01.1900 17:43:16~
> 3454502~ADJUSTMENT ~12.03.2007 00:00:00~01.01.1900 17:44:33~
> 3454503~ADJUSTMENT ~12.03.2007 00:00:00~01.01.1900 17:46:16~
> 3454504~ADJUSTMENT ~12.03.2007 00:00:00~01.01.1900 17:47:52~
> 3454517~TFFFR ~13.03.2007 00:00:00~01.01.1900 08:53:20~
> ...
>
> L'erreur est la suivante :
> ERROR: date/time field value out of range: " 13.03.2007 00:00:00"
> HINT: Perhaps you need a different "datestyle" setting.
> CONTEXT: COPY toto, line 89846, column to_date: " 13.03.2007 00:00:00"
>
Le paramètre DateStyle de postgresql est par défaut MDY (Month Day Year)
Si dans la base de réception date style n'est pas en DMY (comme cela à
l'air d'être le cas) 13.03.2007 ne peut être valide.
Exemple pour les dates à la francaise :
-bash-3.2$  psql postgres
Bienvenue dans psql 8.2.4, l'interface interactive de PostgreSQL.

Tapez:  \copyright pour les termes de distribution
       \h pour l'aide-mémoire des commandes SQL
       \? pour l'aide-mémoire des commandes psql
       \g ou point-virgule en fin d'instruction pour exécuter la requête
       \q pour quitter

postgres=# SHOW datestyle ;
DateStyle
-----------
ISO, DMY
(1 ligne)

Note : ce paramètre peut être modifié par un 'alter database'.

Sinon je pense que la notation iso8601 (YYYY-MM-DD) fonctionne quelque
soit le paramètre
postgres=# SELECT '2007-10-23'::timestamp;
     timestamp
---------------------
2007-10-23 00:00:00


> Pour info la ligne 89846 correspond a la dernière ligne de mes données.
>
> Merci pour vos lumières
>


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq



--
cordialement
david tokmatchi
+33 6 80 89 54 74

Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group