1

時間フィールドを持つテーブルがあり、int フィールドを追加する必要があります。これがコード行です (これはトリガーの一部です)。

DECLARE duration Int;
[....]
SET NEW.appointmentEnd = NEW.appointmentTime + duration;

これは、時間が1時間になるまで機能します。したがって、8:30:00 + 1500 = 8:45:00 ですが、8:30:00 + 3000 = 0:00:00 です。

これを修正する方法は?

前もって感謝します!:)

4

3 に答える 3

1

「プレーンな」int を追加する代わりに、明示的なintervalを追加する必要があります。

new.appointmenttime = (new.appointmenttime + INTERVAL durationInMinutes MINUTE)

もちろん、使用に限定されているわけではありません。より精度が必要な場合MINUTEは使用できます。SECOND

于 2012-05-13T13:53:07.323 に答える
0

MySQL は、「秒」を試しているものを追加して、日付/時刻を直接計算しません。しかし、次のような Date_Add() および Date_Sub() を介して行うことができます

設定予定終了 = date_Add(予定時間、間隔 15 分)

于 2012-05-13T13:53:31.640 に答える
0

次のような日付演算を使用する必要があります。

    mysql> SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;
    -> '2009-01-01 00:00:00'

または

    mysql> SELECT DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 DAY);
    -> '2011-01-01 23:59:59'

したがって、期間がたとえば秒単位の場合:

    SET NEW.appointmentEnd = NEW.appointmentTime + INTERVAL duration SECOND;
于 2012-05-13T14:10:12.540 に答える