【问题标题】:DateAdd function in Oracle SQLOracle SQL 中的 DateAdd 函数
【发布时间】:2020-08-26 22:42:58
【问题描述】:

如何在 where 子句中转换 DATEADD(week,-4,GETDATE())(在 Oracle SQL 中)

尝试获取前 4 周的数据

SELECT DISTINCT LOWER(C.EMAIL) AS EMAIL, FOI.ORDER_ID AS ORDERS
  FROM MTEPWDATA_CAN.MTEP_FACT_ORDER_ITEMS FOI
  LEFT JOIN MTEPWDATA_CAN.MTEP_DIM_DAY D
    ON FOI.ORDER_DATE_SKEY = D.DAY_SKEY
  LEFT JOIN MTEPWDATA_CAN.MTEP_DIM_CUSTOMER C
    ON FOI.CUSTOMER_SKEY = C.CUSTOMER_SKEY
 WHERE ((QUANTITY_ORDERED > 0 
   AND FOI.FULFILLMENT_TYPE = 'SCHEDULED_HOME'))
   AND DATEADD(week, -4, GETDATE())

【问题讨论】:

    标签: sql sql-server oracle


    【解决方案1】:

    在 Oracle 中,您会使用:

    select sysdate - interval '28' day
    

    或者,如果您愿意:

    select sysdate - 4 * interval '7' day
    

    【讨论】:

    • 我也可以在 where 子句中使用相同的吗?
    • @Maddy 。 . .是的 。 . .只要您包含适当的比较。
    • 我在下面的查询中试过了,但不知何故无法正常工作。你能帮我解决这个问题吗?
    • 选择 DISTINCT LOWER(C.EMAIL) 作为 EMAIL,FOI.ORDER_ID 作为来自 MTEPWDATA_CAN.MTEP_FACT_ORDER_ITEMS FOI LEFT OUTER JOIN MTEPWDATA_CAN.MTEP_DIM_DAY D ON FOI.ORDER_DATE_SKEY = D.DAY_SKEY LEFT OUTER JOIN MTEP C ON FOI.CUSTOMER_SKEY = C.CUSTOMER_SKEY WHERE ( ( QUANTITY_ORDERED > 0 AND FOI.FULFILLMENT_TYPE='SCHEDULED_HOME' ) ) AND DATEADD(week,-4,GETDATE())
    • @Maddy 。 . .就像我说的那样,您需要对日期进行适当的比较。该表达式只返回一个日期。
    猜你喜欢
    • 2018-10-05
    • 1970-01-01
    • 2014-11-20
    • 2021-11-15
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2021-11-15
    相关资源
    最近更新 更多