2

さまざまなクライアントで作業した時間数を記録する MySQL データベースがあります。これには 2 つのテーブルがあり、1 つは時間を格納し、もう 1 つはクライアントごとに請求するさまざまな料金を保持します。

Start / Stop Time、Activity、Calculated HoursRate、およびその他のいくつかの情報呼び出しを示す表形式でデータを表示する Web ページがあります。

Hours列は、どちらが正常に機能するかを使用して計算されTIME_FORMAT( TIMEDIFF( end_date, start_date ) , '%h %i' ) AS Hours、作業時間/分が表示されます。ただし、Amount 列には、Hours&Min*Rate ではなく、Hours * Rate の計算のみが表示されます。

議事録を含めるにはどうすればよいですか?

TIME_FORMAT( TIMEDIFF( end_date, start_date ) , '%h %i' ) * rate ...合計金額を計算するために現在使用しているものですが、前述のように分の値は無視されます。

ロディに関して、どんな助けにも感謝します

4

4 に答える 4

3

の代わりに、指定した単位 (秒、時間、年) の差を示す which をTIMEDIFF使用します。TIMESTAMPDIFFクエリで次のように使用します。

SELECT TIMESTAMPDIFF( MINUTE , start_date, end_date ) * ( rate / 60 ) AS billable_amount
FROM  `your_table`
于 2013-04-24T15:21:05.037 に答える
2

'%h %i'17 15これは文字値であり、別の数値で乗算できるものではありません。

の代わりにTIMESTAMPDIFFunitを使用するか、それが機能しない場合 (ドキュメントによると完全な日付値が必要なため) (そして 60 で除算)。MINUTETIME_FORMATTIME_TO_SEC

于 2013-04-24T15:17:44.973 に答える
0
SELECT TIME(NOW());
+-------------+
| TIME(NOW()) |
+-------------+
| 16:29:13    |
+-------------+

SELECT TIME_TO_SEC(TIME(NOW()))/3600;
+-------------------------------+
| TIME_TO_SEC(TIME(NOW()))/3600 |
+-------------------------------+
|                       16.4875 |
+-------------------------------+
于 2013-04-24T15:28:40.123 に答える