web-dev-qa-db-fra.com

Convertir varchar2 en date ('MM/JJ/AAAA') en PL/SQL

J'ai besoin de convertir une chaîne de varchar en date au format "MM/JJ/AAAA". Ma chaîne d'entrée est '4/9/2013' et ma sortie attendue est '04/09/2013 '. c'est-à-dire mois à 2 chiffres, date à 2 chiffres et année à 4 chiffres séparés par '/'

J'ai ci-dessous des données: DOJ varchar2 (10 octets) la colonne a la valeur '4/9/2013' . J'utilise 'select TO_DATE (DOJ,' MM/JJ/AAAA ') de EmpTable. Mais j'obtiens le résultat du 09-APR-13. Je le veux au format 04/09/2013.

S'il vous plaît donnez votre avis. Merci d'avance.

5
Devashri B.

Le moyen le plus simple est probablement de convertir un VARCHAR en DATE; puis formatez-le à nouveau dans un VARCHAR dans le format souhaité;

SELECT TO_CHAR(TO_DATE(DOJ,'MM/DD/YYYY'), 'MM/DD/YYYY') FROM EmpTable;

Un SQLfiddle à tester avec .

7

Vous devez d’abord convertir VARCHAR en DATE, puis revenir en CHAR. Je le fais presque tous les jours et je n'ai jamais trouvé de meilleur moyen.

select TO_CHAR(TO_DATE(DOJ,'MM/DD/YYYY'), 'MM/DD/YYYY') from EmpTable
2
hol

Exemple de requête: SELECT TO_CHAR(TO_DATE('2017-08-23','YYYY-MM-DD'), 'MM/DD/YYYY') FROM dual;

0
samba siva