2013-04-24 40 views
2

我有一個MySQL數據庫,它記錄了在不同客戶端上工作的小時數。它有兩個表格,一個存儲小時數,另一個存放我爲每個客戶工作收取的不同費率。乘以小時和分鐘的小時數

我有呈現出啓動/停止時間提交格式的數據的網頁,活動,計算小時和一對夫婦的其他信息調用。

小時列使用TIME_FORMAT(TIMEDIFF(end_date, start_date) , '%h %i') AS Hours計算,它工作正常,給我工作時間/分鐘。然而,金額列僅顯示小時*費率計算而非小時數&最小*費率。

如何包含會議記錄?

TIME_FORMAT(TIMEDIFF(end_date, start_date) , '%h %i') * rate ...是我現在用來計算總金額,但正如我所說的分鐘值被忽略。

得到任何幫助,對於羅迪

+0

當然,你想要的小時數(基數爲10)而不是「分鐘」本身!?!?!? – Strawberry 2013-04-24 15:20:41

回答

3

而不是TIMEDIFF,使用TIMESTAMPDIFF它給你指定的度量(秒,小時,年)的差異。使用這樣的查詢:

SELECT TIMESTAMPDIFF(MINUTE , start_date, end_date) * (rate/60) AS billable_amount 
FROM `your_table` 
2

'%h %i'會導致類似17 15 - 這是一個字符串價值,而不是東西,可以用另一個數相乘。

使用TIMESTAMPDIFF與單位MINUTE代替TIME_FORMAT,或者,如果不工作(因爲根據文檔需要完整的日期值),TIME_TO_SEC(除以60)。

+0

在混凝土中製作,假設費率爲小時:TIMESTAMPDIFF(MINUTE,start_date,end_date)*(rate/60) – 2013-04-24 15:22:10

+0

TIMESTAMPDIFF完成工作 - THANKYOU – 2013-04-24 20:31:58

0
SELECT TIME(NOW()); 
+-------------+ 
| TIME(NOW()) | 
+-------------+ 
| 16:29:13 | 
+-------------+ 

SELECT TIME_TO_SEC(TIME(NOW()))/3600; 
+-------------------------------+ 
| TIME_TO_SEC(TIME(NOW()))/3600 | 
+-------------------------------+ 
|      16.4875 | 
+-------------------------------+ 
0

如果你的總時間值存儲在格式00:00格式00.00可以使用下面的查詢與2位小數返回值時薪;

SELECT ROUND(SUM(TIME_TO_SEC('time') * ('hourly_rate')))/60/60 AS 'total_value' FROM 'table'