2013-09-13 17 views
0

я не знаю, если этот вопрос уместен, но ситуация выглядит следующим образом:Как вычесть значение из времени разницы

В моем MySQL Query я получаю разницу во время и получить суммирование для каждых сотрудников по общий раздел.

SUM(HOUR(TIMEDIFF(fDate, fDateOut))) AS timediff 

Теперь, после получения результата, я должен получить только 8 часов из результата и положить лишние часы в другой колонке в таблице, где:

example: 
fDate     fDateOut 
2013-08-01 07:00  2013-08-01 18:00 

timediff = 11 hours // <------ now I need to get only 8 hours from this result and put the excess in another column: 

поэтому:

timediff  = 8 hours 
excesstime = 3 hours 

Как выполнить вычисление в mysql? Пожалуйста помоги. Благодарю.

+0

Ваш вопрос о том, как вводить данные «INSERT» в таблицу MySQL или о том, как вычесть 8 из 11? – shennan

+0

не о вставке, а о логике и самом быстром способе, как это будет сделано. извините за вопрос ... – mmr

ответ

0

Вот довольно грубое решение, я уверен, что он может быть оптимизирован в соответствии с вашим запросом, но он показывает идею.

SELECT *, LEAST(8,timediff) AS timediff, GREATEST(0,timediff-8) AS excess 
FROM (
    SELECT *, SUM(HOUR(TIMEDIFF(fDate, fDateOut))) AS timediff from test 
) t 
+0

Помог ли это вообще? – calcinai

Смежные вопросы