Oracle
 sql >> Database >  >> RDS >> Oracle

come cambiare la data all'ora in Oracle 10g

Devo inserire STIMING una volta

Oracle non ha un TIME tipo di dati. Il DATE il tipo di dati è sempre memorizzato internamente come 7 byte ed è sempre composto da anno (2 byte) e mese, giorno, ore, minuti e secondi (1 byte ciascuno).

Non puoi non ha un componente anno, mese o giorno di un DATE .

Se desideri un tempo da solo, dovrai memorizzarlo come un tipo di dati diverso o memorizzare l'anno/mese/giorno e ignorare quel componente.

Quando sei SELECT nel STIMING colonna non mostra la componente temporale. Puoi cambiarlo cambiando il formato della data predefinito che è impostato in NLS_DATE_FORMAT parametro di sessione.

Puoi rivedere questo parametro utilizzando:

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';

Puoi impostare questo valore all'interno della tua sessione corrente utilizzando:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

(Nota:questo non cambia il valore per nessun altro utente.)

Quando inserisci la data puoi usare:

INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )

Oppure un TIMESTAMP ANSI letterale (che verrà implicitamente convertito in DATE formato della colonna):

INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )