2009-10-12 10 views
0

iam confused. Iam essayant de lire une valeur d'une table d'oracle, format: timestamp (6).Problèmes Oracle avec DATE

Dans mes scripts PHP im réglage de la Dateformat avec:

$db->query('ALTER SESSION SET NLS_DATE_FORMAT = "DD-MM-RR"'); 

sur 2 machines im recieving cette chaîne comme valeur (Wich est correct pour moi): [ "TIME_INSERT"] = string> (24) "05.10.07 14: 20: 05,000000"

sur une machine linux où le même script est en cours d'exécution, il retourne: [ "TIME_INSERT"] => string (28) « 05-OCT- 07 02.20.05.000000 PM "

des idées pour changer cela?

Répondre

4

vous devez définir le paramètre de la session NLS_TIMESTAMP_FORMAT ou NLS_TIMESTAMP_TZ_FORMAT pour afficher les données d'horodatage que vous voulez:

SQL> select systimestamp from dual; 

SYSTIMESTAMP 
---------------------------------------------------- 
12/10/09 12:52:41,462532 +02:00 

SQL> ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT = 'dd.mm.rr hh24:mi:ss,ff5'; 

Session altered 

SQL> select systimestamp from dual; 

SYSTIMESTAMP 
-------------------------------------------------------------------------------- 
12.10.09 12:56:36,14023 
+1

J'utilise généralement un TO_CHAR() dans le SQL ou se lier à un type de données JDBC. Cela semble préférable à la définition d'un paramètre de session. –

+0

... et utilisez TO_DATE (...) dans l'autre sens pour insérer des valeurs dans le format de votre choix. – awe

+0

@WW et crainte: je suis d'accord, je préconise toujours l'utilisation de la conversion de date explicite. –