2013-01-08 145 views
3

可能重复:
Calculate difference between 2 date/times in Oracle SQLOracle日期差异SQL查询

我有哪里PurchasedDate保持的表。我必须从系统中获取日期并计算日期差异。 datediff()在我在Oracle工作时没有给出结果。

样品表:

 
ProductID Date 
P101  31-DEC-2012 
P102  29-DEC-2011 

如果今天返回P102,差别应该是10

下面是详细说明

 
BillID  ProductID Date 
101   P101  31-DEC-2012 
101   P102  31-DEC-2012 
102   P405  29-JUN-2012 
102   P210  29-JUN-2012 
105   P205   2-MAY-2012 

如果客户来retun产品P101与BillNo 101,那么系统应计算返还日期(系统日期)和购买日期之间的差额。 P101的答案应该是10,如果它在2012年1月8日返回

+5

为什么10计算Oracle日期差异良好的信息?我不知道。 –

+0

当P102于1月8日返回时,由于购买日期为12月29日,所以差额为10。 –

回答

11

尝试

SELECT trunc(sysdate) - PurchasedDate 
    FROM table_name; 
+0

哇!精湛!它的作品!非常感谢! –

3

在Oracle中,您可以只减去日期。这会在几天内给你答案。

例如假设你的意思是2012年12月29日,而不是2011年12月29日!

select trunc(sysdate) - your_date from your_table; 


SQL> select trunc(sysdate) - to_date('29-dec-2012', 'dd-mon-yyyy') from dual; 

TRUNC(SYSDATE)-TO_DATE('29-DEC 
------------------------------ 
          10 
+0

该表是销售表的一部分。 BillId和ProductID将形成主键。如果客户想要退货,则从表格中获取购买日期,并从系统中提取日期,并计算差异。 –