Non ce n'est pas. Votre date est sortie dans le format spécifié par votre NLS_DATE_FORMAT . Je veux afficher si différent, modifiez ce paramètre pour votre session :
alter session set nls_date_format = 'dd-mm-yyyy'
Notez le mot afficher . C'est tout ce que cela fait. C'est tout ce que vous devriez envisager de faire. La façon dont une date est affichée n'affecte en rien la façon dont elle est stockée.
Plus normalement, vous pouvez utiliser TO_CHAR() avec un modèle de format approprié pour afficher une date, c'est-à-dire to_char(my_date, 'dd-mm-yyyy')
. Ce ne sera plus une date mais un caractère.
Il ne semble pas que vous souhaitiez afficher une date comme vous l'avez dit. Vous renvoyez la valeur de votre fonction, auquel cas je m'en tiendrai à ce que vous avez. Il vous suffit de transformer une date dans un format approprié pour l'affichage lorsque vous la sortez de la base de données, stockez-la toujours comme une date dans la base de données. Cela signifie à son tour que peu importe à quoi il ressemble lorsqu'il est stocké dans la base de données, simplement qu'il s'agit en fait d'une date.