Netezza date function for current date - 16 days

SQUISH picture SQUISH · May 14, 2015 · Viewed 19.2k times · Source

I want to pull today's date plus the last four weeks. Does anyone know a function for this in Netezza? What I have below is a guess that doesn't work. Also, I don't want to extract the date.

 Select c.BUSINESS_UNIT_NBR, c.BUSINESS_UNIT_NAME, b.STORE_NBR, b.INV_CUST_ACNT_NBR,c.INV_CUST_NAME, a.NDC_NBR, a.GENERIC_NAME, a.INV_NBR, a.CONTRACT_ID, a.CONTRACT_NAME, a.ORD_DT, b.INV_DT, b.SHIP_DT, a.ORD_QTY, a.SHIPPED_QTY, a.INV_PRICE_AMT, a.INV_COST_AMT, a.MARKUP_MARKDOWN_PCT, a.INV_LINE_AMT
    from fct_dly_invoice_detail a, fct_dly_invoice_header b, dim_invoice_customer c
    where a.INV_HDR_SK = b.INV_HDR_SK
    and b.DIM_INV_CUST_SK = c.DIM_INV_CUST_SK
    and a.SRC_SYS_CD = 'ABC'
    and a.NDC_NBR is not null 
    **and b.inv_dt(current_date)-16**
    and b.store_nbr in (813, 1197, 2771, 3048, 3177, 3387, 3477, 3602, 3766, 3912, 4020, 4138, 4228, 4434, 4435, 4507, 4742, 4791, 5353, 5392, 5775, 5776, 5890, 6177, 6692, 6736, 6806, 7933, 9175, 9472)

Answer

ScottMcG picture ScottMcG · May 14, 2015

Assuming inv_dt is the column you want to filter on, your where predicate should include:

WHERE 
...
inv_dt between CURRENT_DATE - 16 and CURRENT_DATE
...

16 days does not equal four weeks, but adjust that number accordingly to your needs.