Oracle
 sql >> Base de données >  >> RDS >> Oracle

comment insérer la date actuelle dans un champ DATE au format jj/mm/aaaa dans oracle

DATE est un type intégré dans Oracle, qui est représenté de manière fixe et sur lequel vous n'avez aucun contrôle.

Donc :

Je veux qu'il insère [...] comme 08/01/2011 00:00:00 AM

Ce qui précède est absurde. Vous n'insérez pas de chaîne, vous insérez une date.

Le format n'est utile que lorsque vous voulez :

  • pour convertir une chaîne en une représentation interne de date avec TO_DATE (masque de format :comment analyser la chaîne );
  • pour convertir une représentation interne de la date en une chaîne avec TO_CHAR (masque de format :comment afficher la date).

Donc, fondamentalement, dans votre exemple, vous prenez une DATE, vous la convertissez en STRING avec un certain format et la reconvertissez en DATE avec le même format. C'est une opération interdite.

Maintenant, ce que votre client affiche :c'est parce que votre client Oracle n'affichera pas directement les champs DATE et que la couche NLS convertira tout champ DATE sélectionné. Cela dépend donc de vos paramètres régionaux par défaut.

Ce que vous voulez est SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual; qui effectuera explicitement la conversion et renverra une chaîne.

Et lorsque vous souhaitez insérer une date dans une base de données, vous pouvez utiliser TO_DATE ou des littéraux de date.