web-dev-qa-db-fra.com

Oracle SQL "Champ SELECT DATE dans le champ DATETIME"

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

4
Dejan

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>
17
Lalit Kumar B

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
1
Gergely Bacso

Essayez cet extrait de code:

 cast(datetimevariable as date)
0
Majorkumar