Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
124 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 249

Отчет с использованием формата времени

13.07.2014, 13:58. Показов 1332. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане!

Помогите с построением отчета, так как испытываю сложности с форматом time. Отчет самый обычный.
Есть таблица (MS SQL server) в ней три поля:
- дата (тип (date)),
- начало (тип time(7)),
- конец (тип time(7)).

В отчете, нужно показать, разницу между началом и концом в часах и минутах, сумму полученной разницы в часах и минутах и нарастающий итог полученной разницы тоже в часах и минутах (сортировка по дате).
Использую ReportViewer.

Добавлено через 23 часа 13 минут
Вроде все просто, а вариантов не видать....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.07.2014, 13:58
Ответы с готовыми решениями:

Создать отчет формата A3
Доброе утро, нужно сделать отчет в формате A3. Я так понимаю не имея подключенного принтера с форматом A3 создать такой отчет не получится?

Изменение формата времени
Проблема такая. В БД время хранится в полном формате (01.01.2016 00:00:00, например). В запросе надо сделать выборку по времени. Через...

Смена формата времени.
Y menya est datu '1/31/02','7/1/02' kak vu videte y mneya propadaut nyli eslie eot 7-07,1-01 i t.d. Kakoi format mne ispolsovat dlya...

8
31 / 30 / 13
Регистрация: 15.02.2014
Сообщений: 157
13.07.2014, 14:12
ac1-caesar, а в чем вопрос собственно? посчитать просто и получить разницу
0
124 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 249
13.07.2014, 14:24  [ТС]
Для наглядности, результат должен быть такой.

ДатаНачалоКонецРазницаНарастающий итог
01.07.20146:2512:025:375:37
03.07.201413:2915:452:167:53
03.07.201420:442:195:3513:28
04.07.201417:3021:574:2717:55
04.07.201421:226:549:3227:27
06.07.20142:186:063:4831:15
07.07.201410:5412:081:1432:29
08.07.20145:2710:054:3837:07
Сумма разницы:  37:07 
0
31 / 30 / 13
Регистрация: 15.02.2014
Сообщений: 157
13.07.2014, 14:33
ac1-caesar, Можно с помощью sql запросов
К примеру время 15:22:37-15:15:30 =
И sql запрос
SQL
1
2
3
4
5
SELECT 
to_char(sysdate,'dd-mm-yyyy hh24:mi:ss') "sysdate", 
to_char(sysdate + 1/24 + 5/1440 + 50/86400, 'dd-mm-yyyy hh24:mi:ss') plus_, 
to_char(sysdate - 15/24 - 15/1440 - 30/86400, 'dd-mm-yyyy hh24:mi:ss') minus_ 
FROM таблица;

источник
0
124 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 249
13.07.2014, 14:42  [ТС]
fast1kkk, ну как бы да, с этим особо проблем то нет. Но как сделать сумму? Формат времени не поддерживает сумму. Так же char невозможно считать. И как сделать нарастающий итог? Тоже сумма задействована.
0
31 / 30 / 13
Регистрация: 15.02.2014
Сообщений: 157
13.07.2014, 14:49
ac1-caesar,
ТОчно так же
SQL
1
2
3
4
5
SELECT 
to_char(sysdate,'dd-mm-yyyy hh24:mi:ss') "sysdate", 
to_char(sysdate + 1/24 + 5/1440 + 50/86400, 'dd-mm-yyyy hh24:mi:ss') plus_, 
to_char(sysdate - 15/24 - 15/1440 - 30/86400, 'dd-mm-yyyy hh24:mi:ss') plus,
FROM таблица;
0
124 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 249
13.07.2014, 15:22  [ТС]
fast1kkk, пишет: to_char - не является распознанным именем встроенной функции.
И ответ не очень понятный. Я написал три конкретных поля, и желаемый результат.
Разницу можно просто посчитать через DATEDIFF. Но суммировать не получается и получить нарастающий итог.
Сейчас копаю в сторону TimeSpan, пока безуспешно. Поэтому и прошу помощи, может кто уже решал.

Добавлено через 14 минут
Написал вот такое решение нарастающего итога для ReportViewer:
=TimeSpan.FromTicks(RunningValue(TimeSpa n.FromTicks(sum(Fields!FlightEnd.Value)-sum(Fields!FlightStart.Value)), Sum, nothing))

Однако нарастает только за сутки, на следующие сутки заново считает. И минус еще в том, что если начало 23:30 а конец 02:30, то разница должна получиться 3:00, а не минусовое значение, т.е. в этом случае к концу нужно прибавить 24 часа и потом минусовать время начала. Что то типа:
SQL
1
2
3
4
CASE 
WHEN FlightStart<FlightEnd THEN DATEDIFF(MINUTE, FlightStart, FlightEnd)
WHEN FlightStart>FlightEnd THEN DATEDIFF(MINUTE, FlightStart, dateadd("MINUTE" , 1440, FlightEnd))
END
Для ReportViewer:
=RunningValue(
IIf(fields!FlightEnd.Value>fields!Flight Start.Value,
Fields!FlightEnd.Value-Fields!FlightStart.Value,
Fields!FlightEnd.Value-fields!FlightStart.Value),
sum,nothing)
Но не знаю как прибавить 24 часа в этой строке к полю Fields!FlightEnd.Value
0
31 / 30 / 13
Регистрация: 15.02.2014
Сообщений: 157
13.07.2014, 16:51
ac1-caesar, а квкой результат в этой переменной Fields!FlightEnd.Value?
0
124 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 249
13.07.2014, 16:56  [ТС]
Цитата Сообщение от fast1kkk Посмотреть сообщение
ac1-caesar, а квкой результат в этой переменной Fields!FlightEnd.Value?
Это не переменная, а поле с форматом времени. Ну если привязать к наглядной табличке выше, то это будет "конец"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.07.2014, 16:56
Помогаю со студенческими работами здесь

Ошибка формата времени
Уважаемые, подскажите решение проблемы. Работаю с wmi через делфи, есть процедура получения времени запуска процессов, но время...

Перевод времени из 24-часового формата в 12-й
Написать программу и макрос, который переводит время из 24-часового представления в 12-часовое. Используйте структуру время, которая имеет...

Суммирование поля формата времени
Добрый день! Есть таблица с видеофайлами, в таблице поле формата &quot;длинный формат времени&quot;, где указана продолжительность видео....

Расшифровка времени заданного формата
Добрый день Всем! Мой код по распознаванию времени и его формата - #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Вывод формата даты и времени
Просьба сразу не кидать тухлыми помидорами, я понимаю для многих это не сложно, но я в тупике. Делаю контрольную по ассемблеру. Учусь...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru