【问题标题】:Oracle date difference SQL query [duplicate]Oracle日期差异SQL查询[重复]
【发布时间】:2012-12-22 11:27:22
【问题描述】:

可能重复:
Calculate difference between 2 date / times in Oracle SQL

我有一张表,其中维护了 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 日

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

【问题讨论】:

  • 1月8日返回P102时,由于购买日期是12月29日,所以差10

标签: sql oracle date-arithmetic


【解决方案1】:

试试

SELECT trunc(sysdate) - PurchasedDate 
  FROM table_name;

【讨论】:

  • 哇!太棒了!它的工作原理!非常感谢!
【解决方案2】:

在 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

【讨论】:

  • 该表是销售表的一段。 BillId 和 ProductID 将形成主键。如果客户要退货,则从表中获取购买日期,从系统中获取日期并计算差额。
【解决方案3】:

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

How To Calculate Difference Between Dates in Oracle SQL

【讨论】:

  • 谢谢,@A.B Cade madi 让他更简单
  • 很遗憾,链接已损坏
猜你喜欢
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
相关资源
最近更新 更多