Je dois mettre
STIMING
un moment
Oracle n'a pas de TIME
Type de données. La DATE
Le type de données est toujours stocké en interne sous la forme de 7 octets et est toujours composé de l'année (2 octets) et du mois, du jour, des heures, des minutes et des secondes (1 octet chacun).
Vous ne pouvez pas ne pas avoir une année, un mois ou un jour dans une DATE
.
Si vous voulez une heure seule, vous devrez la stocker sous un type de données différent ou stocker l'année/mois/jour et ignorer ce composant.
Lorsque vous êtes SELECT
le STIMING
colonne, il ne montre pas le composant de temps. Vous pouvez changer cela en changeant le format de date par défaut qui est défini dans le NLS_DATE_FORMAT
paramètre de session.
Vous pouvez revoir ce paramètre en utilisant :
SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';
Vous pouvez définir cette valeur dans votre session en cours en utilisant :
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
(Remarque :cela ne modifie pas la valeur pour les autres utilisateurs.)
Lorsque vous insérez la date, vous pouvez utiliser :
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )
Ou, un TIMESTAMP
ANSI littéral (qui sera implicitement converti en DATE
format de la colonne):
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )