Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26

Как суммировать время?

02.05.2013, 21:57. Показов 5080. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо определить, сколько всего времени студент провел на занятиях. В таблице есть поля Код Студента, Дата, Время начала занятия, Время окончания занятия. Пробовала делать запрос с группировкой по Коду студента, второе поле Sum([Посещаемость]![Время окончания занятия]-[Посещаемость]![Время начала занятия]). Если время, проведенное на занятиях, не превышает 24 часов, то все здорово, но если это 25 часов, то запрос выдаст 1:00 час. Помогите, пожалуйста, с решением этой проблемы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2013, 21:57
Ответы с готовыми решениями:

Как суммировать время (в часах и минутах)
Помогите! Мне нужно сделать запрос, и в нем кроме всего прочего нужно посчитать (суммировать) время в столбце! Как это сделать? Всё...

Как правильно суммировать время и дату Adoquery
Добрый вечер. Есть dbgrid datasource adoquery все между собой соединено. Так же имеется база (роль исполняет: текстовый файл...

Как можно суммировать время работы программы?
Здравствуйте, хочу написать прогру которая записыват время работы других программ. Но я ни как не могу придумать как записать время работы...

14
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
02.05.2013, 22:38
SQL
1
SUM([Посещаемость]![Время окончания занятия]-[Посещаемость]![Время начала занятия])*24 AS [Часов]
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
02.05.2013, 22:58  [ТС]
"Ошибка синтаксиса во введенном выражении. Задано значение для операции без оператора"

Добавлено через 6 минут
С синтаксисом все в порядке, но неправильно считает(
0
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
03.05.2013, 00:35
Здравствуйте Galway Girl.
".. Если время, проведенное на занятиях, не превышает 24 часов, то все здорово, но если это 25 часов, то запрос выдаст 1:00 час.."
Поля содержащие дату/время отображаются в соответствующем формате. Для решения Вашей задачи необходимо явно указывать формат отображающий дни, например так:
SQL
1
..,  Format(SUM([Время окончания занятия]-[Время начала занятия]) , "d   hh:nn") AS AllTime ..
Евгений.
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
03.05.2013, 13:10  [ТС]
Так, увы, тоже не получается, он как-то неправильно и странно считает дни. Там, где должно стоять 0 02:00 написано 30 02:00, а там, где должно быть 1 11:35 написано 31 11:35, а если должно быть 2 04:35, запрос выдает 1 04:35. Что это за ерунда и как с этим справиться? Возможно ли выводить время в таком виде 35:40?
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.05.2013, 14:47
SQL
1
2
3
4
5
6
SELECT 
  КодСтудента, 
  SUM([Посещаемость]![Время окончания занятия]-[Посещаемость]![Время начала занятия])*24 AS sumt, 
  INT(sumt) & ":" & INT((sumt-INT(sumt))*60) AS [СуммаВремени]
FROM Таблица
GROUP BY КодСтудента
1
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
03.05.2013, 22:11  [ТС]
большое вам спасибо! все отлично работает!)
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
05.05.2013, 22:20  [ТС]
Обнаружилась проблема. Когда запрос должен выдавать, например, 2 часа, он выдает 1:59, когда 1 час - 0:59, но выборочно работает правильно..1 час должен быть - 1:0 выдает. Как так, куда девается минута? как это исправить?
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.05.2013, 22:53
Цитата Сообщение от Galway Girl Посмотреть сообщение
Обнаружилась проблема. Когда запрос должен выдавать, например, 2 часа, он выдает 1:59, когда 1 час - 0:59, но выборочно работает правильно..1 час должен быть - 1:0 выдает. Как так, куда девается минута? как это исправить?
Это связано с неточностью типа данных с плавающей запятой Double, в котором хранится ДатаВремя, а также особенностями функции Int.

Попробуйте прибавить полсекунды к расчетному полю sumt (показываю только одну строку запроса)
SQL
1
SUM([Посещаемость]![Время окончания занятия]-[Посещаемость]![Время начала занятия])*24+1.0/7200 AS sumt
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
06.05.2013, 12:30
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от mobile Посмотреть сообщение
Это связано с неточностью типа данных с плавающей запятой Double, в котором хранится ДатаВремя, а также особенностями функции Int.

Попробуйте прибавить полсекунды к расчетному полю sumt (показываю только одну строку запроса)
SQL
1
SUM([Посещаемость]![Время окончания занятия]-[Посещаемость]![Время начала занятия])*24+1.0/7200 AS sumt
Имхо, чтобы не заниматься "косметикой", можно сделать так
SQL
1
2
SUM( Посещаемость.[Время окончания занятия] - Посещаемость.[Время начала занятия])*1440  AS smin, 
smin \ 60 & Format(smin MOD 60, "\:00") AS [СуммаВремени]
а лучше так
SQL
1
2
SUM(DateDiff("n", Посещаемость.[Время начала занятия],  Посещаемость.[Время окончания занятия])) AS smin, 
smin \ 60 & Format(smin MOD 60, "\:00") AS [СуммаВремени]
3
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
06.05.2013, 22:35  [ТС]
Спасибо! Все работает) Только не совсем понимаю, что происходит при выполнении запроса, не могли бы вы объяснить, как это работает?
0
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
06.05.2013, 23:48  [ТС]
Подскажите еще, пожалуйста, как сделать так, чтобы для студентов, записей о которых нет в таблице Посещаемость, в поле СуммаВремени стояло 00:00. Уже по-всякому пробовала, ничего не получается. Сейчас запрос выполняется так:
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
07.05.2013, 06:15
Цитата Сообщение от Galway Girl Посмотреть сообщение
как сделать так, чтобы для студентов, записей о которых нет в таблице Посещаемость, в поле СуммаВремени стояло 00:00.
Мохно так
SQL
1
IIf(smin IS NULL, "0:00", smin \ 60 & Format(smin MOD 60, "\:00"))  AS СуммаВремени
1
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 26
07.05.2013, 10:41  [ТС]
спасибо, получилось!)
0
Milka_bv
04.12.2013, 15:39
Добрый день.
Подскажите, пожалуйста, есть множество дат с указанием времени,
(пример:
21.11.2013 8:32:49
21.11.2013 8:56:40
21.11.2013 9:10:46
21.11.2013 9:36:29
21.11.2013 9:41:28
21.11.2013 9:44:05)
необходимо напротив каждого времени вывести разницу со следующим событием.
Если это не возможно или слишком трудоемко, макрос в Екселе прекрасно с этим справляется, но нужны конечные данные, и не могу сообразить как это сделать
Время действия / разница во времени / признак

8:20:40 0:00:02 Начало работы
8:20:42 0:00:16 нет
8:20:58 0:08:03 нет
8:29:01 0:00:23 нет
8:29:24 0:01:46 ОК
8:31:10 0:00:11 нет
8:31:21 0:00:46 нет
8:32:07 0:00:08 нет
8:32:15 0:00:34 нет
8:32:49 0:00:03 ОК
8:32:52 0:17:49 нет
8:50:41 0:04:59 Окончание работы

выход в идеале нужен вот такой
НЕТ (в т.ч. окончание и начало работы) = 1:25:12
ОК = 2:12:12

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

Определенно знаю, что не хватает знаний, чтоб решит вопрос. Спасите))))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2013, 15:39
Помогаю со студенческими работами здесь

Суммировать время
Ребят всем привет! По форуму пробежался не нашел подобной темы. В общем судя по картинке запрос две колонки некое время и колонка...

Каким образом можно суммировать время?
У меня в mysql есть значения в одной таблице продолжительность фильм, во второй время начала сеанса. Мне нужно высчитать время окончания...

Суммировать элементы матрицы, возвеси в квадрат каждое число и снова суммировать
Всем привет! Предположим, есть некий массив 10 на 10, ну то есть 100 чисел. Эти числа такие немного кривые, то есть целая часть и пять...

Суммировать элементы массива, расположенные до первого четного числа. Суммировать все нечетные элементы и <11
1. Нужно вычислить сумму массива до первого четного с помощью формул Excel Не удается модернизировать формулу, пока она вычисляет...

Как суммировать значения строки?
Здравствуйте. от решил поиграть с андроид. Хочу сделать калькулятор)) сделал кнопки, повесил(вроде бы) слушатель событий, и при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru