sql >> Base de Datos >  >> RDS >> Oracle

como cambiar la fecha a la hora en oracle 10g

Tengo que poner STIMING un tiempo

Oracle no tiene un TIME tipo de datos. La DATE el tipo de datos siempre se almacena internamente como 7 bytes y siempre se compone de año (2 bytes) y mes, día, horas, minutos y segundos (1 byte cada uno).

no puedes no tener un componente de año, mes o día de un DATE .

Si desea una hora propia, tendrá que almacenarla como un tipo de datos diferente o almacenar el año/mes/día e ignorar ese componente.

Cuando estás SELECT ing el STIMING columna no muestra el componente de tiempo. Puede cambiar esto cambiando el formato de fecha predeterminado que se establece en el NLS_DATE_FORMAT parámetro de sesión.

Puede revisar este parámetro usando:

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';

Puede establecer este valor dentro de su sesión actual usando:

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

(Nota:esto no cambia el valor para ningún otro usuario).

Cuando inserta la fecha, puede usar:

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

O bien, un ANSI TIMESTAMP literal (que se convertirá implícitamente al DATE formato de la columna):

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