Sql 根据条件从表中删除某些行,并将varchar转换为日期
我知道这个问题的答案可能微不足道。当满足某些条件时,我想从一个巨大的表中删除某些行。条件为Sql 根据条件从表中删除某些行,并将varchar转换为日期,sql,oracle,Sql,Oracle,我知道这个问题的答案可能微不足道。当满足某些条件时,我想从一个巨大的表中删除某些行。条件为drdate(一个varchar字段),该字段保存日期信息,因此需要对其进行转换。这个表很大,理想情况下我不想花费太多时间运行查询 delete from products where (to_date('drdate','mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy')) 这将返回: SQL错误:ORA-01858:在需要数字的位置找到非数字
drdate
(一个varchar字段),该字段保存日期信息,因此需要对其进行转换。这个表很大,理想情况下我不想花费太多时间运行查询
delete from products
where (to_date('drdate','mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))
这将返回:
SQL错误:ORA-01858:在需要数字的位置找到非数字字符
185800000试试这个:
delete from products
where (to_date(drdate,'mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))
如注释中所述,引号使函数计算字符串值'drdate',而不是
drdate
列中的值。drdate列中的数据类型是什么?OP说它是varchar为什么在代码中drdate
列名称周围有引号?很好。显然,情况需要扭转。好啊thx@SchmitzIT他们也是。我在问,因为我发现了和你一样的东西,但显然忽略了正确阅读整个问题。