【问题标题】:Get records from last hour获取上一小时的记录
【发布时间】:2013-11-13 15:54:03
【问题描述】:

我有这个问题:

SELECT Field1, OrderFor, Writeback, Actshipdate, Orderstatus, receivedate, receivetime
FROM orderinfo, shippinginfo
WHERE orderinfo.orderid = shippinginfo.orderid
AND shippinginfo.custid = '37782'
AND receivedate =  DATE(NOW())
AND receivetime = ???????

我在任何地方都在使用 Sybase 自适应服务器并尝试获取最近一小时的记录。

【问题讨论】:

    标签: sql sybase sybase-asa


    【解决方案1】:

    类似于 TeamDataViz 的回答。只是更具可读性 IMO。

    SELECT Field1, OrderFor, Writeback, Actshipdate, Orderstatus, receivedate, receivetime
    FROM orderinfo, shippinginfo
    WHERE orderinfo.orderid = shippinginfo.orderid
    AND shippinginfo.custid = '37782'
    WHERE receivedate BETWEEN DATEADD(HOUR,-1,GETDATE()) AND CAST(GETDATE() AS DATE)
    

    如果您只想关注过去一天的记录,那么 WHERE 子句会变得更加容易

    WHERE receivedate > GETDATE() - 12
    

    【讨论】:

      【解决方案2】:

      试试下面的查询:

      SELECT Field1, OrderFor, Writeback, Actshipdate, Orderstatus, receivedate, receivetime 
        FROM orderinfo, shippinginfo
        WHERE orderinfo.orderid = shippinginfo.orderid
          AND shippinginfo.custid = '37782'
          AND receivedate =  DATE(NOW())
          AND receivetime >= (sysdate-1/24);
      

      【讨论】:

        【解决方案3】:

        试试这个!!

        SELECT Field1, OrderFor, Writeback, Actshipdate, Orderstatus, receivedate, receivetime
            FROM orderinfo, shippinginfo
            WHERE orderinfo.orderid = shippinginfo.orderid
            AND shippinginfo.custid = '37782'
            AND receivedate =  DATE(NOW())
             AND receivetime > DATEADD(HOUR, -1, GETDATE())
        

        【讨论】:

        • 有道理。谢谢。
        猜你喜欢
        • 2019-06-23
        • 2014-09-17
        • 2012-09-04
        • 1970-01-01
        • 2014-03-17
        • 1970-01-01
        • 2017-09-23
        • 1970-01-01
        • 2020-09-27
        相关资源
        最近更新 更多