【发布时间】:2023-12-02 05:44:01
【问题描述】:
我一直在尝试从表中删除当前日期为 oracle 中 sysdate 的记录。您可以参考我尝试过的下图
正如您在第一张图片中看到的,updated_date 的类型是日期。当我进行插入时,数据会使用 sysdate 插入,但是当我尝试选择/删除时,它在第二个图像中不起作用。
起初,我认为可能是由于时间变化可能导致了这种情况,但类型是日期,甚至我尝试将其格式化为 dd-mon-yy 所以不应该是这种情况
【问题讨论】:
-
从不,永远不要在已经是日期的值上调用
to_date()。这将首先将date值转换为varchar,然后将varchar转换回最初的date。 -
你想要
trunc(updated_date) = trunc(sysdate) -
我尝试了 to_date,因为我认为时间变化会是原因,所以 to_date(updated_date,'dd-mon-yy') 应该有效,但只是 din 甚至认为左操作数也需要一个to_date(updated_date,'dd-mon-yy')/trunc 插入时
-
再次:从不使用已经是日期(或时间戳)的参数调用
to_date()。这是完全错误的。 -
是的,我的意思是我应该在两边都使用 trunc,是的,通过 to_date() 再次转换日期是没有意义的。谢谢老兄。
标签: oracle