我有一個表wchih有2列。該定義是基於SYSDATE獲取列值
CREATE TABLE LOGGING_T
(
TSTAMP DATE,
LINE VARCHAR2(300)
)
TABLESPACE OPERATIONS
MONITORING
/
的colulmn TSTAMP有像30-NOV-11
,29-NOV-11
...等數值。現在我正在做這個查詢
select * from LOGGING_T where TSTAMP >= (SYSDATE - 1)
當前系統日期是01-DEC-11
。理想情況下,上述聲明應該返回記錄TSTAMP = 30-NOV-11
,因爲我在做SYSDATE-1
這將是30-NOV-11
。但它沒有提取這些記錄。爲什麼?
但是,如果我這樣做查詢
select * from LOGGING_T where TSTAMP >= (SYSDATE - 2)
然後取記錄誰TSTAMP
是30-NOV-11
。我在這個簡單的日期操作中做錯了什麼?
你可以省略掉'TRUNC(TSTAMP)的TRUNC'因爲如果'TRUNC(TSTAMP)> = TRUNC(SYSDATE - 1)',它永遠是真實的'TSTAMP> = TRUNC(SYSDATE - 1 )'(如果在TSTAMP上有索引,刪除它可能會提高性能)。 –