日期之间来自oracle的数据

时间:2012-08-28 13:19:02

标签: oracle

我必须从最近的2周以上的Oracle数据库中获取数据。

它是一个复杂的查询,我在where子句中有这个条件。

我试过用它们之间。但徒劳无功。我确信我在解决这两者之间犯了一些愚蠢的错误。

to_date(to_char(sysdate,'yyyy') || to_char(sgs.status_Date,'mmdd'),'yyyymmdd' )
    between (trunc(sysdate)) and trunc(sysdate) - 14

非常感谢任何帮助。

2 个答案:

答案 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必须同时在之后之前两周之前。