Oracle按特定时间删除数据报错ORA-01861的解决方法咨询
ORA-01861错误解决方法
错误原因
你用的TO_DATE函数里,格式字符串的时分秒分隔符写的是减号(HH24-MI-SS),但实际日期字面量'2023-04-06 00:00:00'里的时分秒分隔符是冒号,两者不匹配,导致Oracle无法正确解析日期,触发ORA-01861: literal does not match format string错误。
解决办法
方法1:修正格式字符串
把格式字符串中的时分秒分隔符改成冒号,和字面量格式匹配:
delete from "result" where DATA_DATE < TO_DATE('2023-04-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
方法2:使用日期字面量(更简洁)
如果DATA_DATE是DATE类型,Oracle支持直接用日期字面量,无需TO_DATE转换,默认代表当天00:00:00,和你的需求一致:
delete from "result" where DATA_DATE < DATE '2023-04-06'
方法3:针对TIMESTAMP类型字段
如果DATA_DATE是TIMESTAMP类型,可使用TIMESTAMP字面量:
delete from "result" where DATA_DATE < TIMESTAMP '2023-04-06 00:00:00'
内容的提问来源于stack exchange,提问作者Sunshine
相关产品推荐
相关产品推荐

