我是Oracle 11g的新手&我對查詢有疑問。Oracle 11g中的日期比較
我有一個表dummy
它有created_date
類型的列Date
。
我想要一個查詢,它將返回所有記錄,其中created_date
+ 7天小於今天的日期。
Oracle 11g中的哪種查詢可以完成此操作?
我是Oracle 11g的新手&我對查詢有疑問。Oracle 11g中的日期比較
我有一個表dummy
它有created_date
類型的列Date
。
我想要一個查詢,它將返回所有記錄,其中created_date
+ 7天小於今天的日期。
Oracle 11g中的哪種查詢可以完成此操作?
甲骨文讓您使用+
的日期計算,所以
where table.created_date >= sysdate
and table.created_date < sysdate + 7
會發現正是現在正好和現在加7天行。
如果您不希望包括時間組件,您可以使用trunc()
功能
where trunc(table.created_date) >= trunc(sysdate)
and trunc(table.created_date) < trunc(sysdate) + 7
我覺得rejj的解決方案會給你現在七天在未來的記錄。從你的描述來看,這聽起來像你可能在過去七天內想要這些記錄。我想這樣做,因爲:
WHERE created_date <= SYSDATE
AND created_date >= SYSDATE - 7
這可能是更清晰,相當於:
WHERE created_date BETWEEN SYSDATE AND (SYSDATE - 7)
注意,使用TRUNC()將導致優化繞過您有任何CREATED_DATE指標,除非你定義了一個功能索引。
利用聲波常數可以使日期計算更加清晰,如
SELECT *
FROM DUMMY
WHERE CREATED_DATE >= TRUNC(SYSDATE) - INTERVAL '7' DAY
分享和享受。
我想你很幸運能得到這些好的答案。你至少應該嘗試查詢 - 或者閱讀一些關於sql的內容,因爲這是非常基本的東西。 – Randy 2012-01-03 01:42:28