2013-02-20 24 views
7

sono tenuto a fare quanto segue come un esercizio, e sto lottando per trovare una soluzione:Convert 24 tempo ore a 12 ore più AM indicazione/PM Oracle SQL

Scrivi un'istruzione SELECT che restituisce queste colonne da la tabella Fatture:

la colonna invoice_date

Utilizzare la funzione TO_CHAR per restituire la colonna invoice_date con la sua data completa e il tempo tra cui un anno a quattro cifre su un orologio di 24 ore

Utilizzare la funzione TO_CHAR per tornare t La colonna invoice_date con la data e l'ora complete compreso un anno a quattro cifre su a 12 ore con un indicatore am/pm.

utilizzare la funzione CAST per restituire la colonna invoice_date come VARCHAR2 (10)

Tutto quello che posso ottenere è:

select invoice_date, to_char(invoice_date, 'DD-MM-YYYY HH:MM:SS') "Date 24Hr" 
    from invoices 

che ottiene i miei primi due colonne, ma io non riesco a capire qualsiasi modo per selezionare la terza colonna. Qualsiasi aiuto sarebbe fantastico, grazie. (E sì, questo è da mio libro di testo scolastico)

+0

Possibile duplicato di [Oracle a \ _date con pm/am] (http://stackoverflow.com/questions/27269903/oracle-to-date-with-pmam) –

risposta

22

Per la 24 ore di tempo, è necessario utilizzare HH24 invece di HH.

Per l'ora di 12 ore, l'indicatore AM/PM è scritto come A.M. (se si desidera periodi nel risultato) o AM (se non lo si fa). Per esempio:

SELECT invoice_date, 
     TO_CHAR(invoice_date, 'DD-MM-YYYY HH24:MI:SS') "Date 24Hr", 
     TO_CHAR(invoice_date, 'DD-MM-YYYY HH:MI:SS AM') "Date 12Hr" 
    FROM invoices 
; 

Per ulteriori informazioni sui modelli di formato è possibile utilizzare con TO_CHAR su una data, vedere http://docs.oracle.com/cd/E16655_01/server.121/e17750/ch4datetime.htm#NLSPG004.

+0

Grazie, questo è quello che dovevo sapere –

+0

@Galen_GG: prego! – ruakh

+0

@Galen_GG In realtà, per il formato orario di 12 ore, di solito è meglio * non * includere uno zero iniziale nel formato dell'ora di output ('03:50 PM' sembra appena sbagliato, poiché lo zero iniziale implica un orologio 24 ore in più casi !!). Meglio quindi utilizzare: 'TO_CHAR (data fattura, 'DD-MM-YYYY FMHH: MI: SS AM')" Data 12Hr "' – cartbeforehorse

Problemi correlati