2013-09-06 3 views
2
Name|| day||ActivityDate ||TimeIn || TimeOut || 
Ade || 20 || 2013-08-20 || 10:06:09 || 18:21:03 || 
Ade || 21 ||2013-08-27 || 11:00:34 || 18:06:56 || 
Ade || 22 || 2013-08-28 || 09:56:29 || 17:59:56 || 

Это мой запрос:Как получить общий час?

select 
tot=sum(DATEDIFF(hh ,TimeIn ,TimeOut)) as TotalHourAndMinute 
from report 

И ошибка:

1582 - Неправильный подсчет параметров в вызове собственной функции 'DATEDIFF'

Это мой таблица в datable .. Я не знаю, как получить общий час, как TimeOut-TimeIn ..

FYI, у меня есть много данных в этой таблице .. не только это 3 ..

я надеюсь, что вы, ребята, ясно ...

Name|| day||ActivityDate ||TimeIn || TimeOut || TotalHourAndMinute 
Ade || 20 || 2013-08-20 || 10:00:00 || 18:30:00 || 8.5 
Ade || 21 ||2013-08-27 || 11:00:34 || 18:06:56 || 7.something 
Ade || 22 || 2013-08-28 || 09:56:29 || 17:59:56 || 7.something 

я хочу это будет выглядеть следующим образом. .

UPDATE

+1

который вы используете? – Dhwani

+0

phpmyadmin, надеюсь, вы можете попробовать – user2514863

+0

@ user2514863 Тогда я предполагаю, что вы используете MySQL, правильно? –

ответ

1

Ну, если вы используете MySQL правильный формат для функции заключается в следующем:

DATEDIFF(expr1,expr2) 

Дополнительная информация о DATEDIFF, here. Кроме того, все доступные функции времени для MySQL: here.

Но если вы хотите увидеть разницу в часах между двумя датами, используйте TIME_DIFF.

TIMEDIFF(expr1,expr2) 

И документация о TIME_DIFFhere.

Но строго по вашему делу, вы должны написать запрос, как это:

SELECT tot = sum(HOUR(TIMEDIFF(TimeIn, TimeOut))) AS TotalHourAndMinute 
FROM report 

UPDATE:

Теперь, после обновления вашего вопроса, я понимаю, что вы хотите.

Запрос Вы должны использовать это:

SELECT 
     NAME, 
     DAY, 
     ActivityDate, 
     SUM(TIMEDIFF(TimeOut, TimeIn)) as TotalHourAndMinute 
FROM REPORT 
WHERE (TimeOut IS NOT NULL) AND (TimeIn IS NOT NULL) 
GROUP BY NAME, DAY, ActivityDate 
+0

извините босс .. я все еще новый .. когда я поставил этот запрос, ошибка вышла ...Неизвестный столбец «tot» в «списке полей» – user2514863

+0

@ user2514863 'tot' должен быть переменной NUMERIC, которую вы ранее объявили. Но если вы не хотите хранить результат в переменной, просто используйте 'SELECT sum (HOUR (TIMEDIFF (TimeIn, TimeOut))) AS TotalHourAndMinute FROM report' –

+0

ВЫБРАТЬ сумму (ЧАСЫ (TIMEDIFF (TimeIn, TimeOut))) AS TotalHourAndMinute ОТ отчета , чтобы получить общий итог для всех записей .. – user2514863

0

использование:

SELECT HOUR(TIMEDIFF(TimeOut,TimeIn)) AS hour from report; 

Для получения дополнительной информации посетите сайт this.

+0

Thnks. !!!!! Узнаю что-то – user2514863

+0

Мне жаль босса .. мне нужно 15 репутации .. :( – user2514863

0

Если вы суммируете значения времени, вы получите результат в секундах, чтобы вернуть его обратно во время звонка SEC_TO_TIME. Это дает вам:

SELECT 
    SEC_TO_TIME(SUM(TIMEDIFF(TimeOut, TimeIn))) AS TotalHourAndMinute 
FROM 
    report 
Смежные вопросы