2012-05-13 2 views
1

내가 한 번 필드와 테이블을 가지고 있고 내가 여기에있는 int 필드를 추가해야합니다. 여기에 코드의 라인입니다 (이것은 트리거의 조각입니다.)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를 사용하여 국한되지 않습니다 :

답변

1

대신 "일반"INT를 추가하는 :), 당신은 anexplicit 간격을 추가해야 당신이 더 필요한 경우가 SECOND을 사용할 수 있습니다 정도.

+0

감사하지만, SECOND SET NEW.appointmentEnd = NEW.appointmentTime + INTERVAL 기간; 내가 당신에게 sqlfiddle에 샘플을 만들 것, 나에게 몇 분을 지정 @schoen – Nick

+0

작동하지 않습니다 ... – dasblinkenlight

+0

확인 덕분에 난 기다릴거야 :) – Nick

0

MySQL은 당신이 "초"의 시도하고있는 무슨 추가하여 직접 날짜/시간 계산을하지 않습니다. 하지만 당신은 DATE_ADD()와 DATE_SUB()를 통해 할 수있는 등

로 설정 appointmentEnd = DATE_ADD (appointmentTime, 간격 15 분)

당신은 같은 날짜 연산을 사용한다
+0

응답에 감사하지만 SET NEW.appointmentEnd = Date_add (NEW.appointmentTime, INTERVAL duration MINUTE); 어느 쪽도 작동하지 않는다 :( – Nick

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' 

기간이 그렇다면, 예를 들어, 초 :

당신의 응답을