tags:

views:

75

answers:

2

This question is related to this question

I have a field which is a time-field (it does not need to be a datetime field, cause the date part makes no sense here). The value i want to add is in another field, in minutes.

So basicly, I want to add minutes to a time value. I have tried the DATE_ADD function, but it expects the date to be a datetime, with the datepart set. I also tried the ADDTIME function, but the problem here is that the duration field is in whole minutes, and not in the format hh:mm:ss, so it just adds it as seconds.

Does anyone know a way to accomplish this?

[edit]

This is the current query:

SELECT ADDTIME(startTime, duration * 60), startTime, duration FROM tblAppointment
JOIN tblThreatment ON tblThreatment.threatmentid = tblAppointment.threatment_id;

and this is the result:

+-----------------------------------+-----------+----------+
| ADDTIME(startTime, duration * 60) | startTime | duration |
+-----------------------------------+-----------+----------+
| 09:18:00                          | 09:00:00  |       30 |
| 10:09:00                          | 10:00:00  |       15 |
| 09:09:00                          | 09:00:00  |       15 |
| 10:57:00                          | 10:30:00  |       45 |
+-----------------------------------+-----------+----------+
+1  A: 

Addtime is definitely the way to go... to just add a certain amount of minutes you could do something like:

 AddTime('00:00:00', '00:10:00')

This would add 10 minutes to the first value.

You can read more on dev.mysql.com here: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function%5Faddtime

EDIT:

In addition to your comment. If you get the value to add in the format of mm and nothing else, then you could parse a time value with the SEC_TO_TIME() function. Like this:

    SELECT ADDTIME(startTime, SEC_TO_TIME(duration*60)), startTime, duration FROM tblAppointment
JOIN tblThreatment ON tblThreatment.threatmentid = tblAppointment.threatment_id;

This would return a Time in the hh:mm:ss minute format

Robban
The edit worked, thx.
Ikke
A: 

Perhaps concatenate ':00' onto the end of the value from the minutes field before passing to TIMEADD? Or alternatively, multiply the value by 60.

Amber
Both don't work. With the concat version, I get times like 39:00:00, 25:00:00.
Ikke
How do you manage that, if the minutes coming in are 00-59? or do you have things like 39:00 in your minutes field?
Amber
I really don't know. This is just what i'm getting. But this method wouldn't be very flexible in case you have durations of longer then 59 minutes.
Ikke