Mysql:时间+整数



我有一个带有时间字段的表,我需要在其中添加一个 int 字段。这是代码行(它是触发器的一部分。

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

这一直有效到时间到一个小时。所以 8:30:00 + 1500 = 8:45:00 但 8:30:00 + 3000 = 0:00:00。

如何解决这个问题?

提前感谢! :)

与其添加"普通"整数,不如添加显式间隔

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

当然,您不仅限于使用MINUTE:如果您需要更高的精度,您可以使用SECOND

MySQL不会通过添加您尝试的"秒"来直接进行日期/时间数学运算。 但是你可以通过Date_Add()和Date_Sub()来做,例如

设置约会结束 = date_Add( 预约时间,间隔 15 分钟)

你应该使用日期算术,比如:

    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;

最新更新