ORA-01861: 文字与格式字符串不匹配
在 SQL 中,错误“ORA-01861: 文字与格式字符串不匹配”当向表中插入数据值时出现“,并且文字的格式与指定的格式字符串不匹配。当尝试插入特定格式的日期值时,经常会出现此错误。
考虑以下 INSERT 语句:
INSERT INTO Patient (PatientNo, PatientFirstName, PatientLastName, PatientStreetAddress, PatientTown, PatientCounty, PatientPostcode, DOB, Gender, PatientHomeTelephoneNumber, PatientMobileTelephoneNumber) VALUES (121, 'Miles', 'Malone', '64 Zoo Lane', 'Clapham', 'United Kingdom', 'SW4 9LP', '1989-12-09', 'M', 02086950291, 07498635200);
在此语句中,DOB 列定义为日期。但是,文字“1989-12-09”不是 SQL 日期的可识别格式。要解决此问题,请使用 TO_DATE() 函数将字符串文字转换为正确的格式:
INSERT INTO Patient (PatientNo, PatientFirstName, PatientLastName, PatientStreetAddress, PatientTown, PatientCounty, PatientPostcode, DOB, Gender, PatientHomeTelephoneNumber, PatientMobileTelephoneNumber) VALUES (121, 'Miles', 'Malone', '64 Zoo Lane', 'Clapham', 'United Kingdom', 'SW4 9LP', TO_DATE('1989-12-09', 'YYYY-MM-DD'), 'M', 02086950291, 07498635200);
通过指定格式字符串“YYYY-MM-DD”,SQL 可以识别文字“1989-” 12-09' 作为年-月-日格式的日期,并成功将其插入到 DOB 列中。
以上是为什么我的SQL INSERT语句会导致ORA-01861:文字与格式字符串不匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!