to_date() prend votre paramètre de chaîne, le fait correspondre au format que vous fournissez dans le deuxième paramètre et construit un champ de date à partir de celui-ci. Le champ de date n'utilise pas le format que vous avez fourni dans le deuxième paramètre - en fait, il sera stocké à l'aide d'une représentation de données interne qui n'a aucun format (un nombre, selon toute vraisemblance).
Pour présenter un format dans les résultats à partir d'un champ de date, vous pouvez soit :
- Demandez au client exécutant la requête de définir les paramètres NLS (au niveau de la session) pour fournir un format localisé, avec un
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
déclaration), ou - Utilisez
to_char(..., 'YYYY-MM-DD')
autour de votre champ existant pour transformer la date en une chaîne formatée comme vous le souhaitez. Où vous remplacez...
avec votre définition de colonne actuelle dans la sélection.
L'approche n ° 1 est déjà en cours, car il y aura déjà un ensemble NLS_DATE_FORMAT qui produit le format actuel, mais c'est avec un format que vous ne voulez pas, donc si vous pouvez le contrôler et le changer là-bas, vous pouvez le faire façon. Si vous ne pouvez pas et que vous devez avoir le format d'une seule autre manière cohérente, alors #2 pourrait être la voie à suivre.