1

他の日付列を増やしてDATE型の列を設定したいのですが、他の日付(定数)以上にします。

最初の部分では、次を使用します。

UPDATE `customers` set `expiry_date` = DATE_ADD(date,INTERVAL 3 YEAR)

今、私は MAX(d1, d2) のような関数を探しています。

私はこのような構造を見ました:

case when d1 > d2 then d1 else d2 end

うまくいくかもしれませんが、d1/d2 の両方を 2 回入力する必要があります。各パラメータを一度評価する MAX(d1,d2) のような関数はありませんか?

4

3 に答える 3

2

これがあなたが探しているものかどうかはわかりませんが、MySQLGREATESTにはリストの最高値を返す関数があります。

SELECT GREATEST(1, 5, 2, 7, 10, 3)

お譲り致し10ます。

于 2013-03-16T09:38:00.893 に答える
0

機能は試しましたGREATEST()か?

日付を直接処理できない場合は、最初に日付を数値に変換してから、結果を再変換してください。

于 2013-03-16T09:42:40.837 に答える
0

DATEDIFF()を使用できます

UPDATE `customers` 
set `expiry_date` = ( case  when DATEDIFF(d1,d2)<=0 
                            then d1
                            when DATEDIFF(d1,d2)>0 
                            then d2
                      end case
                    )
于 2013-03-16T09:48:01.207 に答える