Mysql:Time+;int

Mysql:Time+;int,mysql,time,add,Mysql,Time,Add,我有一个带有时间字段的表,我需要在其中添加一个int字段。 这是一行代码(它是触发器的一部分) 这项工作一直持续到一个小时。所以8:30:00+1500=8:45:00,但是8:30:00+3000=0:00:00 如何解决这个问题 提前感谢!:) 不应添加“普通”int,而应添加explicit interval: 当然,您不限于使用MINUTE,如果需要更高的精度,您可以使用SECOND。而不是添加“普通”int,您应该添加一个明确的间隔: 当然,您不局限于使用MINUTE,如果您需要更高的

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

这项工作一直持续到一个小时。所以8:30:00+1500=8:45:00,但是8:30:00+3000=0:00:00

如何解决这个问题

提前感谢!:)

不应添加“普通”int,而应添加explicit interval:

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

而不是添加“普通”int,您应该添加一个明确的间隔:


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

MySQL不会通过添加您正在尝试的“seconds”来直接计算日期/时间。但是您可以通过Date\u Add()和Date\u Sub()执行,例如


set appointmentEnd=date\u Add(appointmentTime,间隔15分钟)

MySQL不会通过添加您正在尝试的“秒”来直接计算日期/时间。但是您可以通过Date\u Add()和Date\u Sub()执行,例如


设置约会结束=日期\u添加(约会时间,间隔15分钟)

您应该使用日期算术,如:

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

例如,如果持续时间为秒:

    SET NEW.appointmentEnd = NEW.appointmentTime + INTERVAL duration SECOND;

您应该使用日期算术,如:

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

例如,如果持续时间为秒:

    SET NEW.appointmentEnd = NEW.appointmentTime + INTERVAL duration SECOND;

感谢您的回复,但是设置NEW.appointmentEnd=NEW.appointmentTime+INTERVAL duration SECOND;不work@schoen这是一个链接。我对mysql有点生疏-表达式周围需要括号。我将更新答案。感谢您的回复,但请设置NEW.appointmentEnd=NEW.appointmentTime+间隔时间秒;不work@schoen这是一个链接。我对mysql有点生疏-表达式周围需要括号。我将更新答案。感谢您的回复,但请设置NEW.appointmentEnd=Date\u add(NEW.appointmentTime,INTERVAL duration MINUTE);也不起作用:(感谢您的响应,但设置NEW.appointmentEnd=Date\u add(NEW.appointmentTime,INTERVAL duration MINUTE);也不起作用:(
    SET NEW.appointmentEnd = NEW.appointmentTime + INTERVAL duration SECOND;