2011-03-10 88 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