2011-09-24 16 views
28

Sto avendo problemi nell'inserire una riga nella mia tabella. Ecco la dichiarazione dell'inserto e la creazione della tabella. Questo fa parte di un unico compito, quindi la semplicità, cosa sto facendo di sbagliato? Sto usando Oracle Oracle Developer versione 3.0.04. 'come inserire data e ora in oracle?

Il problema che sto avendo è che sta solo inserendo il dd/mon/yy ma non il tempo. Come faccio a inserire anche l'ora?

INSERT INTO WORKON (STAFFNO,CAMPAIGNTITLE,DATETIME,HOURS) 
VALUES ('102','Machanic Summer Savings',TO_DATE('22/April/2011 8:30:00AM','DD/MON/YY HH:MI:SSAM'),'3') 
; 

CREATE TABLE WorkOn 
(
    StaffNo  NCHAR(4), 
    CampaignTitle VARCHAR(50), 
    DateTime  DATE, 
    Hours   VARCHAR(2) 
) 
; 

Grazie per l'aiuto.

EDIT: Questo non ha senso, entro un certo tempo sul campo per verificare se il tempo funziona e viene emessa una data WTF? Questo è davvero strano che non può utilizzare un campo di data e basta inserire il tempo, mi rendo conto che questo si tradurrà in problemi di manipolare i dati, ma questo sta facendo non ha senso ...

+0

Condividi anche la definizione della tabella - 'DESC WORKON' –

risposta

29

Si sta eseguendo tutto correttamente utilizzando una funzione to_date e specificando l'ora. Il tempo è lì nel database. Il problema è che quando si seleziona una colonna di tipo dati DATE dal database, la maschera di formato predefinita non mostra l'ora. Se si emette un

alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss'

o qualcosa di simile con una componente del tempo, si vedrà che il tempo ha reso con successo nel database.

Cordiali saluti,
Rob.

+0

grazie, solo un ultimo problema, imposta il formato per tutte le colonne formattate in base alla data visualizzando per le colonne dove voglio solo mostrare la data. È possibile specificarlo per una tabella particolare? – Deep

+1

quindi dovrai specificare la maschera del formato della data nell'istruzione select. Qualcosa come "select to_char (datetime, 'gg-mm-aaaa hh24: mi: ss') datetime from workon". –

+0

Questo comando 'alter sessione' è una manna dal cielo (sono un newb completo di Oracle). Grazie Rob. –

4

Prova questa:

.. (to_date('2011/04/22 08:30:00', 'yyyy/mm/dd hh24:mi:ss'));

+0

no sorry fa la stessa cosa, mostra solo la data. – Deep

+0

Scusate, ho avuto un errore tipografico. Si prega di riprovare. – jschorr

+0

hi continua a non funzionare, inserisce solo la parte della data e ignora l'ora. Se inserisco solo un tempo, lo converte in una data ... MySQL ha più senso dell'oracolo per me ... – Deep

29

È possibile utilizzare

insert into table_name 
(date_field) 
values 
(TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss')); 

Speranza che aiuta.