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