【问题标题】:Oracle SQL - How to find the difference between two date variablesOracle SQL - 如何找到两个日期变量之间的差异
【发布时间】:2021-12-07 09:43:43
【问题描述】:

我试图找出订单日期和发货日期时间之间的最长时间段。我了解获得它的方法,但我只是不确定。我为此使用 JustLee 图书订购数据库 这是我的代码

SELECT o.ORDER#, o.ORDERDATE, o.SHIPDATE, o.SHIPCITY, o.SHIPSTATE
FROM ORDERS o;
WHERE (SELECT

我本来想给你一个更好的查询结果,但我被日期卡住了。任何帮助都是很好的帮助。浪费时间

【问题讨论】:

    标签: sql oracle subquery


    【解决方案1】:

    要找出两个 DATE 数据类型值之间的差异,只需从另一个中减去一个。

    SELECT ORDER#,
           ORDERDATE,
           SHIPDATE,
           SHIPCITY,
           SHIPSTATE,
           SHIPDATE - ORDERDATE AS days_between_ship_and_order
    FROM   ORDERS;
    

    如果您想找到最大值,那么从 Oracle 12 开始,您可以按差异的降序对结果进行排序,并使用FETCH FIRST ROW WITH TIES to row(s) 仅找到最大的差异。

    SELECT ORDER#,
           ORDERDATE,
           SHIPDATE,
           SHIPCITY,
           SHIPSTATE,
           SHIPDATE - ORDERDATE AS days_between_ship_and_order
    FROM   ORDERS
    ORDER BY days_between_ship_and_order DESC
    FETCH FIRST ROW WITH TIES ONLY;
    

    【讨论】:

    • 这可行,但我试图只获得订单之间的最长日期
    • @Laser 正如我在回答中所说,ORDER BY days_between_ship_and_order DESC 然后是FETCH FIRST ROW WITH TIES ONLY
    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2015-06-21
    相关资源
    最近更新 更多