在条件上从表中删除某些行并将varchar转换为日期

时间:2012-10-30 14:24:32

标签: 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:找到了数字所在的非数字字符 01858. 00000

1 个答案:

答案 0 :(得分:2)

试试这个:

delete from products 
where (to_date(drdate,'mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))

如评论中所述,引号会导致函数评估字符串值'drdate',而不是drdate列中的值。

相关问题