2011-03-10 94 views
2

我需要拉日期一列(受僱日期),但必須在該日期後得到的日期超過14天。什麼是應該是一個基本的腳本..SQL日期後超過14天原

+0

一些樣本數據,請..? – 2011-03-10 22:45:17

回答

1

日期在oracle中可以使用加號和減號運算符來加減天數。所以,如果你減去從另一個日期,以獲得差異:

select * from table 
where otherdate - hiredate > 14 

這是不是真的從你被「該日期」指的是這個問題我清楚,但無論是在同另一列表,參數或其他東西完全只是在需要時將其替換爲查詢。

+2

爲了更加準確,日期不是以數字本身的形式存儲的(Oracle有自己特定的內部存儲格式),但算術運算符'+'和'-'以及比較運算符('>','<'等)在他們身上工作。 – 2011-03-11 01:59:36

+0

@Jeffery,我根據你的建議更新了帖子。 – krock 2011-03-11 05:13:23

0

試試這個:

SELECT * 
FROM employees 
WHERE 1=1 
    AND DateDiff(day, interestingDate , hirdDate) >14 

- 哎呀 - 這是否爲SQL Serrver - 我們對此深感抱歉!這裏有一種方法可以在Oracle 9i或更高版本中完成。我想明確numtodsinterval功能,因爲它是很清楚,你是lokoing的天差:

select * 
from employees 
WHEERE 1=1 
    AND numtodsinterval(interestingDate- hiredDate,'day')>14; 

乾杯,

丹尼爾

+1

DateDiff在Oracle中不可用。這是一個SQL Server主題。 – 2011-03-10 22:51:54

+0

對不起 - 剛更新了Oracle版本 – 2011-03-11 15:50:07

+0

不幸的是,你不能比較一個間隔與一個數字,所以這是行不通的。你可以說'numToDSInterval(date2 - date1,'day')> interval'14'day'來比較兩個區間。 – 2011-03-11 16:06:26