3

可能重复:
计算 Oracle SQL 中 2 个日期/时间之间的差异

我有一张表,其中维护了 PurchasedDate。我必须从系统中获取日期并以天为单位计算日期差异。当我在 Oracle 工作时,datediff() 没有给出结果。

样品表:

产品编号 日期
P101 2012 年 12 月 31 日
P102 2011 年 12 月 29 日

如果今天返回 P102,则差值应为 10。

这里有详细的说明

账单 ID 产品 ID 日期
101 P101 2012 年 12 月 31 日
101 P102 2012 年 12 月 31 日
102 P405 2012 年 6 月 29 日
102 P210 2012 年 6 月 29 日
105 P205 2012 年 5 月 2 日

如果客户来退换BillNo101的产品P101,那么系统应该计算退货日期(即系统日期)和购买日期之间的差异。如果 P101 于 2012 年 1 月 8 日返回,则 P101 的答案应为 10

4

3 回答 3

12

尝试

SELECT trunc(sysdate) - PurchasedDate 
  FROM table_name;
于 2013-01-08T15:09:28.420 回答
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
于 2013-01-08T15:08:54.823 回答
0

您可以从下面的链接中找到有关在 oracle 中计算日期差异的好信息

如何在 Oracle SQL 中计算日期之间的差异

于 2013-01-08T15:39:53.957 回答