web-dev-qa-db-fra.com

Comment insérer la date et l'heure dans Oracle?

J'ai du mal à insérer une ligne dans mon tableau. Voici la déclaration insert et la création de la table. Cela fait partie d'une mission uni d'où la simplicité, qu'est-ce que je fais mal? J'utilise Oracle SQL Developer Version 3.0.04. '

Le problème que je rencontre, c’est que c’est seulement l’insertion du jj/lun/aa mais pas du temps. Comment puis-je l'obtenir pour insérer l'heure aussi?

INSERT INTO WORKON (STAFFNO,CAMPAIGNTITLE,DATETIME,HOURS)
VALUES ('102','Machanic Summer Savings',TO_DATE('22/April/2011 8:30:00AM','DD/MON/YY HH:MI:SSAM'),'3')
;

CREATE TABLE WorkOn
(
    StaffNo        NCHAR(4),
    CampaignTitle  VARCHAR(50),
    DateTime       DATE,
    Hours          VARCHAR(2)
)
;

Merci pour l'aide.

EDIT: Cela n’a aucun sens, je saisis simplement une heure sur le terrain pour vérifier si l’heure fonctionne et si une sortie WTF est générée? C'est vraiment bizarre. Je ne peux pas utiliser un champ de date et juste entrer l'heure, je réalise que cela entraînera des problèmes de manipulation des données, mais cela n'a aucun sens ...

38
Deep

Vous faites tout correctement en utilisant une fonction to_date et en spécifiant l'heure. Le temps est là dans la base de données. Le problème, c'est que lorsque vous sélectionnez une colonne de type de données DATE dans la base de données, le masque de format par défaut n'affiche pas l'heure. Si vous émettez un

alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss'

ou quelque chose de similaire, y compris un composant de temps, vous verrez que le temps est entré avec succès dans la base de données.

35
Rob van Wijk

Vous pouvez utiliser

insert into table_name
(date_field)
values
(TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));

J'espère que ça aide.

39
Sai prateek

Essaye ça:

...(to_date('2011/04/22 08:30:00', 'yyyy/mm/dd hh24:mi:ss'));

6
jschorr

Utilisez simplement la fonction TO_DATE() pour convertir la chaîne en DATE.

Par exemple:

create table Customer(
       CustId int primary key,
       CustName varchar(20),
       DOB date);

insert into Customer values(1,'Vishnu', TO_DATE('1994/12/16 12:00:00', 'yyyy/mm/dd hh:mi:ss'));
2
Codemaker