Domanda

Ho spulciato il sito così pensando questo è abbastanza ovvio, ma purtroppo non ho ancora trovato uno. Fondamentalmente la configurazione è la seguente:

Ho una stringa in una tabella in questo modo:

  

06/22/2010 00:00:00

faccio un prescelto su di esso:

SELECT To_Date(item, 'MM/DD/YYYY HH24:MI:SS') from that_table

in modo che effettivamente sto facendo

SELECT To_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS') from that_table

I miei ritorni di database:

  

22.06.2010 00:00:00

Ora so che posso fare un

to_char(to_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')

, ma ho bisogno di selezione per restituire un formato della data (MM/DD/YYYY HH24:MI:SS), non è una stringa. Come posso fare?

Modifica produzione reale:

  

22.06.2010 00:00:00

output desiderato (in formato di data):

  

06/22/2010 00:00:00

È stato utile?

Soluzione

Una data è un punto nel tempo, non ha formato (come i numeri: non hanno formato). Quando si visualizza la data, ovviamente, deve avere un formato di:. Se non specificamente dare Oracle un formato, verrà utilizzato il formato predefinito per la sessione (sessione parametro NLS_DATE_FORMAT)

In conseguenza: utilizzare il tipo di dati DATA per aritmetica di calendario e memoria (senza formato). Utilizzare la funzione to_char o qualcosa di equivalente quando è necessario visualizzare la data (in un report o nella GUI).

Altri suggerimenti

A DATA non ha un formato, esso viene formattato solo quando convertito in una stringa di caratteri per la visualizzazione. Se si utilizza SQL più poi quando si visualizza una colonna DATA (senza utilizzare TO_CHAR esplicitamente formattarlo), SQL più si esegue una conversione TO_CHAR utilizzando l'impostazione NLS_DATE_FORMAT:

SQL> select sysdate from dual;

SYSDATE
---------
23-JUN-10

SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2010-06-23 15:17:12

Se non si utilizza SQL più, allora qualunque strumento che si sta utilizzando farà qualcosa di simile e può avere un modo diverso per specificare il formato della data per la visualizzazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top