Comment faire pour supprimer les zéros du début de la journée et le mois de valeurs dans Oracle, lors de l'analyse de chaîne en utilisant la fonction to_char?
Je veux récupérer une date sans les zéros devant le jour et le mois de valeurs dans une instruction select. Si j'exécute la requête suivante
select to_char(sysdate, 'dd.mm.yyyy') from dual;
Je vais obtenir 21.03.2014 comme un résultat. Par ailleurs, si aujourd'hui était, par exemple, le 7 Mars, 2014, je voudrais obtenir 07.03.2014. Comment puis-je me débarrasser de ces zéros?
Je suis d'accord avec Doug S sur Jan 11 '16 à 4:38: je pouvais avoir 'fm' existe pas une fois dans la chaîne, tels que: to_char(sysdate--20,'fmMM.DD.YY'). Sinon, j'ai reçu '1.03.14" comme la réponse montre
OriginalL'auteur Yulian | 2014-03-21
Vous devez vous connecter pour publier un commentaire.
Retourne
FM mode de Remplissage.
Dans un format datetime élément d'une fonction TO_CHAR, cette option supprime les blancs dans la suite de caractères éléments (tels que des MOIS) et supprime les zéros à gauche pour le nombre d'éléments (tels que MI) dans un format de date modèle. Sans FM, le résultat d'un personnage élément est toujours à droite, rembourré avec des blancs pour une longueur fixe, et des zéros sont toujours retournés pour un certain nombre d'élément. Avec FM, qui supprime blanc rembourrage, la longueur de la valeur de retour peut varier.
FWIW, il travaille également avec PostreSQL (moins sysdate).
Je pouvais avoir 'fm' existe pas une fois dans la chaîne, tels que: to_char(sysdate--20,'fmMM.DD.YY'). Sinon, j'ai reçu '1.03.14" comme la réponse montre.
C'est parce que
fm
fonctionne comme une bascule. Avis de la description dit "supprime les zéros à gauche pour ultérieure". Si vous avez utiliséfmMM.DDfm.YY
vous souhaitez supprimer les zéros de la fois le jour et le mois, mais pas l'année (et pas que l'année est susceptible d'avoir jamais zéros, mais c'est peut-être plus pertinent si vous avez inclus le temps dans la chaîne de mise en forme).OriginalL'auteur Robert Merkwürdigeliebe
Essayez ceci:
select to_char(to_date('20-oct-2000'),'fmmm/dd/fmrr') from dual
La requête ci-dessus va supprimer les zéros de jour et le mois de valeurs dans Oracle.
OriginalL'auteur sen
C'est très loin d'être élégant, mais il fonctionne:
Fondamentalement, vous convertir le numéro de chaque partie de la date
OriginalL'auteur pablomatico