Jag måste lägga in
STIMING
en gång
Oracle har ingen TIME
data typ. DATE
datatyp lagras alltid internt som 7-byte och består alltid av år (2-byte) och månad, dag, timmar, minuter och sekunder (1-byte vardera).
Du kan inte inte ha en år-, månads- eller dagkomponent av en DATE
.
Om du vill ha en tid för sig måste du lagra den som en annan datatyp eller lagra år/månad/dag och ignorera den komponenten.
När du är SELECT
med STIMING
kolumnen visar den inte tidskomponenten. Du kan ändra detta genom att ändra standarddatumformatet som är inställt i NLS_DATE_FORMAT
sessionsparameter.
Du kan granska denna parameter med:
SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';
Du kan ställa in detta värde inom din nuvarande session med:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
(Obs:detta ändrar inte värdet för några andra användare.)
När du infogar datumet kan du använda:
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )
Eller en ANSI TIMESTAMP
literal (som kommer att castas underförstått till DATE
formatet för kolumnen):
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )