2009-09-15 32 views
5

這個問題是關係到this question添加某些分鐘的時間在MySQL

我有一個字段是時間字段(它並不需要是一個日期時間字段,導致日期部分是沒有意義在這裏) 。我想要添加的值在另一個字段中,以分鐘爲單位。

基本上,我想添加分鐘到一個時間值。我已經嘗試過DATE_ADD函數,但它期望日期是日期時間,並設置了日期部分。我也嘗試了ADDTIME函數,但是這裏的問題是持續時間字段在整個分鐘內,而不是格式爲hh:mm:ss,因此它只是將其添加爲秒。

有沒有人知道一種方法來完成這個?

[編輯]

這是當前查詢:

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

,這是結果:

+-----------------------------------+-----------+----------+ 
| 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 | 
+-----------------------------------+-----------+----------+ 
+0

針對您的評論添加了一個附加內容。 – Robban 2009-09-15 14:44:29

回答

19

更新時間肯定是要走的路...只需添加你可以做一些類似的事情:

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

這會爲第一個值增加10分鐘。

你可以閱讀更多的dev.mysql.com這裏:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_addtime

編輯:

除了你的評論。如果您以mm的格式獲得要添加的值,那麼您可以使用SEC_TO_TIME()函數解析時間值。像這樣:

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

這將返回hh:mm:ss分鐘格式的時間。

0

也許在傳遞到TIMEADD之前將':00'連接到分鐘字段的值的末尾?或者,將該值乘以60。

+0

兩者都不起作用。有了concat版本,我可以獲得像39:00:00和25:00:00這樣的時間。 – Ikke 2009-09-15 09:39:47

+0

如果進場時間是00-59,你如何管理?或者你的分鐘字段中是否有類似39:00的內容? – Amber 2009-09-15 10:04:12

+0

我真的不知道。這正是我所得到的。但是如果持續時間超過59分鐘,這種方法不會很靈活。 – Ikke 2009-09-22 04:25:56

0

TL:DR

乘以100分鐘,而不是60

說明

如果你想在MM格式添加分鐘,就像它是在你例如,並避免將其轉換爲HH:MM:SS格式,您應該將分鐘乘以100而不是60:

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

它因爲MySQL文檔說:

例如,你可能會認爲 '1112' 和1112含義'11:12:00' (12分鐘後11點) ,但MySQL將它們解釋爲'00:11:12'(11分12秒)。類似地,'12'和12被解釋爲'00:00:12'。

所以你不想算你多少秒的(例如:600 = 6分鐘,不爲10分鐘,你會覺得)

如果要添加15或30分鐘,你只需添加1500或3000,就是這樣。

0

一個簡單的方法,從日期和時間添加&減間隔僅僅是使用+-和單詞INTERVAL

SELECT startTime + INTERVAL 10 MINUTE 

您可以添加&減秒鐘,幾分鐘,幾天,幾周,幾個月,等完整的列表在這裏https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-add

日期算術也可以利用聲波與 +或一起進行 - 運營商:

date + INTERVAL expr unit 
date - INTERVAL expr unit 

INTERVAL EXPR單元 被允許在+運算的任一側如果在 另一側的表達式是一個日期或日期時間值。對於 - 運算符,INTERVAL expr單位只允許在右側,因爲它不會使 有意義從時間間隔中減去日期或日期時間值。