Oracle
 sql >> Base de données >  >> RDS >> Oracle

comment changer la date en heure dans oracle 10g

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' )