簡體   English   中英

SELECT查詢日期列在X之前,X在另一列

[英]SELECT Query where date column is X ago where X is another column

我正在嘗試使用NOW() - INTERVAL運行一個查詢,其中日期列是很多天/幾個月前,但是天/月數在另一個列中,該列稱為payment_period

SELECT * 
FROM customer_subscriptions 
WHERE 
    status = 'Active' AND (
        ( auto_renew = '1' AND expiry_date <= '".date("Y-m-d")."') 
        OR (last_charge NOW() - INTERVAL payment_period)
    )

last_charge NOW()-間隔期付款

您缺少兩件事:

  • 要比較的日期之間的運算符(> =)
  • 間隔單位

假設payment_period表示為天,則需要:

last_charge >= NOW() - INTERVAL payment_period DAY

另一種可能性是將unit存儲在另一列中,然后:

last_charge >= CASE
    WHEN unit = 'DAY'   THEN NOW() - INTERVAL val DAY
    WHEN unit = 'MONTH' THEN NOW() - INTERVAL val MONTH
    -- ... other supported units ...
END    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM