我必须从最近的2周以上的Oracle数据库中获取数据。
它是一个复杂的查询,我在where子句中有这个条件。
我试过用它们之间。但徒劳无功。我确信我在解决这两者之间犯了一些愚蠢的错误。
to_date(to_char(sysdate,'yyyy') || to_char(sgs.status_Date,'mmdd'),'yyyymmdd' )
between (trunc(sysdate)) and trunc(sysdate) - 14
非常感谢任何帮助。
答案 0 :(得分:1)
您应该尽快更改BETWEEN日期sysdate-14< sysdate,应该是第一个
to_date(to_char(sysdate,'yyyy') || to_char(sgs.status_Date,'mmdd'),'yyyymmdd' )
between (trunc(sysdate) - 14) and (trunc(sysdate))
答案 1 :(得分:1)
正如@valex所说,你需要交换表达式的顺序。正如documentation for the BETWEEN
condition所说:
......
的价值expr1 BETWEEN expr2 AND expr3
是布尔表达式的值:
expr2 <= expr1 AND expr1 <= expr3
您的版本
your_date between trunc(sysdate) and (trunc(sysdate) - 14)
相当于
trunc(sysdate) <= your_date and your_date <= (trunc(sysdate) - 14)
......永远不会是真的 - your_date
必须同时在之后和之前两周之前。