Oracle-与SYSDATE的日期比较

时间:2018-11-22 07:00:26

标签: oracle date

我需要使用SYSDATE将日期与当前日期进行比较,如下所示:

spec.js

但是,这没有结果。...我的问题:

基于公认的答案here,我们永远不要将字符串与日期进行比较。但另一方面,SYSDATE已准备好为Date数据类型,我们不应将其与日期-see here进行比较。

如果我在上层SQL中将 TO_DATE 替换为 TO_CHAR ,则一切将恢复正常。但是 TO_CHAR 函数会转换为String,因此Oracle(我要说)需要再次将该字符串转换为日期,以便您强制Oracle进行隐式数据类型转换。

那么,为了避免Oracle工作缓慢,应该与date和SYSDATE进行正确的比较?

1 个答案:

答案 0 :(得分:1)

您无需致电TO_DATETO_CHAR

SELECT *
FROM my_table
WHERE date_column >= TRUNC(SYSDATE - 3) AND date_column < TRUNC(SYSDATE + 1);

假设date_column是一种日期类型,您应该可以将其直接与SYSDATESYSDATE进行一定天数比较。