Jeg skal indsætte STIMING
en gang
Oracle har ikke en TIME
datatype. DATE
datatypen gemmes altid internt som 7-bytes og er altid sammensat af år (2-bytes) og måned, dag, timer, minutter og sekunder (1-byte hver).
Du kan ikke ikke have en år-, måned- eller dagkomponent af en DATE
.
Hvis du ønsker et tidspunkt alene, bliver du nødt til at gemme det som en anden datatype eller gemme år/måned/dag og ignorere den komponent.
Når du er SELECT
ved at bruge STIMING
kolonne viser den ikke tidskomponenten. Du kan ændre dette ved at ændre standarddatoformatet, som er indstillet i NLS_DATE_FORMAT
sessionsparameter.
Du kan gennemgå denne parameter ved at bruge:
SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';
Du kan indstille denne værdi i din aktuelle session ved at bruge:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
(Bemærk:dette ændrer ikke værdien for andre brugere.)
Når du indsætter datoen, kan du bruge:
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 implicit vil blive castet til DATE
formatet af kolonnen):
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )