type date sous oracle

type date sous oracle - SQL/NoSQL - Programmation

Marsh Posté le 26-09-2006 à 10:21:32    

salut,
 
Existe t il sous oracle un type qui permette de saisir la date dans se format
15/10/2005 16:23:23
 
 
Merci

Reply

Marsh Posté le 26-09-2006 à 10:21:32   

Reply

Marsh Posté le 26-09-2006 à 10:30:29    

le type DATE d'oracle est très bien fait
pour une insertion de type date à partir d'une chaîne formattée, utilise la fonction TO_DATE
exemple :

Code :
  1. INSERT INTO x VALUES (to_date('15/10/2005 16:23:23', 'dd/mm/yyyy hh24:mi:ss'));

Reply

Marsh Posté le 26-09-2006 à 10:32:51    

je veux pas utiliser la fonction to_date
y se pourrai que j'ai des ligne qui ne contiennent que l'heure ou la date

Reply

Marsh Posté le 26-09-2006 à 11:20:43    

avec decode tu pourras détecter le format de la chaîne avant d'appeler to_date() avec le bon pattern

Reply

Marsh Posté le 26-09-2006 à 11:40:31    

vouloir faire d'une colonne hétérogéne une date c'est un peu n'importe quoi mais tu peux faire un truc du style :
 
DECODE(length(colonne),10,to_date(colonne|| '00:00:00', 'dd/mm/yyyy hh24:mi:ss'), to_date(colonne, 'dd/mm/yyyy hh24:mi:ss'));


Message édité par orafrance le 26-09-2006 à 11:40:38
Reply

Marsh Posté le 26-09-2006 à 13:09:53    

Y a même pas besoin d'ailleurs, si on passe '15/10/2005 16:23:23' alors la partie 'time' sera prise en compte, et si on passe '15/10/2005' uniquement (avec le même pattern: 'DD/MM/YYYY HH24:MI:SS') alors la partie time est mise à 00:00:00 par défaut ;)

Reply

Marsh Posté le 26-09-2006 à 14:08:23    

question pour ma culture : il faut avoir un paramètre NLS particulier pour être au format DD/MM/YYYY ? parce qu'on pourrait mettre une date du style 01/01/2006 mais on ne saura pas si on est en DD/MM ou en MM/DD

Reply

Marsh Posté le 26-09-2006 à 14:22:22    

Il ne faut pas se baser sur un format reconnu implicitement par Oracle ...
Il vaut mieux toujours spécifier le 'pattern' : DD/MM/YYYY ou MM/DD/YYYY par exemple.

Reply

Marsh Posté le 26-09-2006 à 14:32:37    

++ avec Beegee.
Parceque le jour où un DBA, pour une raison obscure change un paramètre du serveur, proutch. Idem le jour où tu fais une migration vers un nouveau serveur.
 
Testé et approuvé à deux reprises au boulot. Des heures et des heures (jours ?) perdus pour ce genre de merdes.

Reply

Marsh Posté le 26-09-2006 à 15:03:31    

MagicBuzz a écrit :


Parceque le jour où un DBA, pour une raison obscure change un paramètre du serveur


 
ou pour voir si les dévs font du bon boulot  :na:  
 
:D

Reply

Marsh Posté le 26-09-2006 à 15:03:31   

Reply

Marsh Posté le 26-09-2006 à 17:16:55    

:p

Reply

Marsh Posté le 19-06-2007 à 16:09:54    

Bonjour à tous,

 

Pour ne pas créer un topic supplémentaire, j'up ce topic avec une question:
est-il possible de mettre un champ date à vide sous oracle? (un équivalent à 'null' qui lui ne semble pas marcher).

 

Merci d'avance. :)


Message édité par biboo_ le 19-06-2007 à 16:10:50
Reply

Marsh Posté le 19-06-2007 à 16:29:09    

Utilise NULL sans les quotes ( ' ).

Reply

Marsh Posté le 20-06-2007 à 19:21:21    

Oui effectivement, avant même d'attendre une quelconque réponse, j'ai testé avec succès.  [:prozac]
Merci Quand même. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed