mysql adddate()またはdate_add()をテーブル列を備えていますか?

StackOverflow https://stackoverflow.com/questions/3057905

  •  27-09-2019
  •  | 
  •  

質問

次のようなことをするにはどうすればよいですか

SELECT ADDDATE(t_invoice.last_bill_date, INTERVAL t_invoice.interval t_invoice.interval_unit) 
  FROM t_invoice

...列t_invoice.last_bill_dateは日付です。t_invoice.intervalは整数であり、t_invoice.interval_unitは文字列です。

adddate()関数について私が好きなのは、私が書いた場合です

SELECT ADDDATE('2010-01-31', INTERVAL 1 MONTH)

2010-02-28の最終日を便利に返します。したがって、1か月は2月の28日(跳躍年に29)、奇数数の場合は31日、偶数の月の場合は30日を意味することを知っています。この機能をクエリに保存したいと思います。

基本的に、私は彼の希望する請求頻度に基づいて、人の次の請求書の日付を決定したいと思います。これを達成するためのより良い方法はありますか?

役に立ちましたか?

解決

SELECT t_invoice.last_bill_date +  INTERVAL 
   CASE t_invoice.interval_unit 
    WHEN 'minute' THEN t_invoice.interval 
    WHEN 'hour' THEN t_invoice.interval*60
    WHEN // etc...
    END MINUTE as col1
 FROM t_invoice

また

SELECT 
   CASE t_invoice.interval_unit 
    WHEN 'minute' THEN t_invoice.last_bill_date +  INTERVAL t_invoice.interval MINUTE
    WHEN 'hour' THEN t_invoice.last_bill_date +  INTERVAL t_invoice.interval HOUR
    WHEN // etc...
    END as col1
 FROM t_invoice
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top