J'ai le champ REPORTDATE (DATETIME) . Dans SQL Developer, je peux voir sa valeur dans ce format
29.10.2013 17:08:08
J'ai trouvé que pour faire le choix d'une date, j'ai besoin d'exécuter ceci:
SELECT TO_DATE (REPORTDATE, 'DD.MON.YYYY') AS my_date
FROM TABLE1
mais il retourne 0RA-01843: not a valid month
Je veux que le résultat ne retourne que le 29.10.2013
TO_DATE (REPORTDATE, 'DD.MON.YYYY')
Cela n'a aucun sens. Vous convertissez une date en date à nouveau. Vous utilisez TO_DATE pour convertir un littéral de chaîne en DATE.
Je veux que le résultat ne retourne que le 29.10.2013
Vous pouvez utiliser TRUNC pour tronquer l'élément time. Si vous souhaitez utiliser cette valeur pour les calculs DATE, vous pouvez l’utiliser directement.
Par exemple,
SQL> select TRUNC(SYSDATE) dt FROM DUAL;
DT
---------
12-MAR-15
Pour afficher un format particulier, vous pouvez utiliser TO_CHAR et le FORMAT MASK approprié.
SQL> SELECT to_char(SYSDATE, 'DD.MM.YYYY') dt from dual;
DT
----------
12.03.2015
SQL>
Utilisez ceci:
SELECT trunc(REPORTDATE, 'DD') AS my_date
FROM TABLE1
Cela ne changera pas le type de l'objet renvoyé, mais tout ce qui sera en dessous du niveau "jour".
Si vous êtes d'accord avec le retour d'une chaîne, vous pouvez simplement faire:
SELECT TO_CHAR(REPORTDATE, 'DD.MM.YYYY') AS my_date
FROM TABLE1
Essayez cet extrait de code:
cast(datetimevariable as date)