web-dev-qa-db-fra.com

L'image au format de date Oracle se termine avant la conversion de la chaîne de saisie entière

Ma table a deux attributs de format DATE, cependant, lorsque j'essaie d'insérer une valeur, une erreur est générée: le format de date se termine avant la conversion de la chaîne de saisie entière. Voici mon code de tentative:

insert into visit
values(123456, '19-JUN-13', '13-AUG-13 12:56 A.M.');

Je pense que le problème est avec 12:56 mais la documentation Oracle dit que date implique à la fois la date et l'heure.

10
Buras

Peut-être devriez-vous vérifier NLS_DATE_FORMAT et utiliser la chaîne de date conforme au format ..__ ou vous pouvez utiliser la fonction to_date dans l'instruction INSERT, comme ci-dessous:

insert into visit
values(123456, 
       to_date('19-JUN-13', 'dd-mon-yy'),
       to_date('13-AUG-13 12:56 A.M.', 'dd-mon-yyyy hh:mi A.M.'));

De plus, Oracle DATE stocke date et heure informations ensemble.

18
ntalbs

vous devez changer de session

vous pouvez essayer avant d'insérer

 sql : alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'
5
afeef

Ce que vous essayez d'insérer n'est pas une date, je pense, mais une chaîne. Vous devez utiliser la fonction to_date(), comme ceci:

insert into table t1 (id, date_field) values (1, to_date('20.06.2013', 'dd.mm.yyyy'));
2
Andrew Logvinov

J'ai eu cette erreur aujourd'hui et j'ai découvert qu'il s'agissait d'une année mal formatée ... 

select * from es_timeexpense where parsedate > to_date('12/3/2018', 'MM/dd/yyy')

Remarquez que l'année n'a que trois ans.

Vérifiez votre format.

0
birwin