Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сложение времени / 25 сообщений из 31, страница 1 из 2
14.11.2013, 17:37:20
    #38465436
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Подскажите чего не хватает в данной конструкции?

Код: sql
1.
2.
3.
4.
SELECT CAuthor, SUM(CDuration)
FROM Clips, Repeats
WHERE ClipID = RClip AND RDate = '12.11.2013'
GROUP BY CAuthor;


Выдает: Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
data type not supported for arithmetic.

CDuration - тип Time
...
Рейтинг: 0 / 0
14.11.2013, 17:40:17
    #38465441
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Hello, Занудов!
You wrote on 14 ноября 2013 г. 17:38:57:

Занудов> Подскажите чего не хватает в данной конструкции?
переведи время в дельту (интервал).
время складывать нельзя.
интервал можно.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.11.2013, 18:12:54
    #38465492
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
МимопроходящийHello, Занудов!
You wrote on 14 ноября 2013 г. 17:38:57:

Занудов> Подскажите чего не хватает в данной конструкции?
переведи время в дельту (интервал).
время складывать нельзя.
интервал можно.


А каким макаром это сделать? Есть какие нибудь функции?
...
Рейтинг: 0 / 0
14.11.2013, 18:17:59
    #38465506
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Hello, Занудов!
You wrote on 14 ноября 2013 г. 18:14:46:

Занудов> А каким макаром это сделать?
SUM(CDuration - TIME '0:0')

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.11.2013, 19:36:30
    #38465608
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
МимопроходящийHello, Занудов!
You wrote on 14 ноября 2013 г. 18:14:46:

Занудов> А каким макаром это сделать?
SUM(CDuration - TIME '0:0')


А как назад во время перевести, а то выдает числа(
...
Рейтинг: 0 / 0
14.11.2013, 19:39:38
    #38465610
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
МимопроходящийHello, Занудов!
You wrote on 14 ноября 2013 г. 18:14:46:

Занудов> А каким макаром это сделать?
SUM(CDuration - TIME '0:0')


CAST (SUM(CDuration - TIME '0:0') AS TIME) не катит.
...
Рейтинг: 0 / 0
14.11.2013, 20:02:30
    #38465630
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Hello, Занудов!
You wrote on 14 ноября 2013 г. 19:59:12:

Занудов> А как назад во время перевести, а то выдает
числа( это не время.
это интервал.
500 часов и 43 минуты - это НЕ время.

интервал у тебя выдаётся в секундах.
пересчитать в часы и минуты нетрудно.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.11.2013, 20:03:44
    #38465632
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Занудов,

А я бы вообще тупо перевел время в секунды.

Код: sql
1.
2.
select (extract(hour from atime)*3600+extract(minute from atime)*60+extract(second from atime)) as INTERVALINSEC 
            from .....



Тогда обратный перевод полученных значений тоже прозрачен.
...
Рейтинг: 0 / 0
14.11.2013, 20:04:31
    #38465634
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Мимопроходящий,

А, ну да, ступил ;)
...
Рейтинг: 0 / 0
15.11.2013, 00:32:27
    #38465829
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Да... из времени в строку, из строки во время, потом посчитать часы, минуты, секунды, обратно в строку, подставить ':'...чет какой то гемор(
...
Рейтинг: 0 / 0
15.11.2013, 00:40:09
    #38465832
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Потому что думать надо до, а не в процессе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2013, 00:42:50
    #38465833
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry SibiryakovПотому что думать надо до, а не в процессе.

ну это понятно, а что тут можно придумать "до" и казалось бы чего сложного, два значения времени
...
Рейтинг: 0 / 0
15.11.2013, 00:46:23
    #38465836
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Если подумать "до", то можно додуматься, что тип TIME это "время дня", но ни в коем случае
не "интервал" и только полный кретин будет использовать этот тип для хранения интервалов.
Именно поэтому нет операции сложения для типа TIME.

Если ещё немного подумать, то можно придумать хранить "интервал" в поле типа INTEGER,
которое суммируется совершенно без проблем.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2013, 00:48:59
    #38465837
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry SibiryakovЕсли подумать "до", то можно додуматься, что тип TIME это "время дня", но ни в коем случае
не "интервал" и только полный кретин будет использовать этот тип для хранения интервалов.
Именно поэтому нет операции сложения для типа TIME.

Если ещё немного подумать, то можно придумать хранить "интервал" в поле типа INTEGER,
которое суммируется совершенно без проблем.

А если подумать что этот интежер надо еще постоянно просматривать, и чтоб он выглядел в формате времени...
...
Рейтинг: 0 / 0
15.11.2013, 00:53:36
    #38465841
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
ЗанудовА если подумать что этот интежер надо еще постоянно просматривать, и чтоб он
выглядел в формате времени...
....то главное - не забывать, что сервер БД "просматриванием" не занимается. Это задача
клиентского приложения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2013, 00:54:11
    #38465842
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry Sibiryakov,
и в итоге нужно будет все равно вычислять каждую строку через одно место для удобочитаемости
...
Рейтинг: 0 / 0
15.11.2013, 00:56:35
    #38465844
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Занудови в итоге нужно будет все равно вычислять каждую строку через одно место для
удобочитаемости
Это не проблема сервера, а исключительно вопрос кривизны рук программиста. Тебе придётся
одного нанять...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2013, 00:56:57
    #38465845
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry SibiryakovЗанудовА если подумать что этот интежер надо еще постоянно просматривать, и чтоб он
выглядел в формате времени...
....то главное - не забывать, что сервер БД "просматриванием" не занимается. Это задача
клиентского приложения.

ну это верно. просто привычка от Delphi что храним, то и видим.
...
Рейтинг: 0 / 0
15.11.2013, 00:57:54
    #38465849
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Занудовпривычка от Delphi что храним, то и видим.
Не от Дельфи эта привычка, совсем не от Дельфи...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2013, 01:03:20
    #38465853
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry SibiryakovЗанудовпривычка от Delphi что храним, то и видим.
Не от Дельфи эта привычка, совсем не от Дельфи...

Загадошно...Подсказал бы лучше что нибудь...(
...
Рейтинг: 0 / 0
15.11.2013, 01:11:58
    #38465856
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
ЗанудовПодсказал бы лучше что нибудь...(
Какое слово из "использовать INTEGER" тебе непонятно? Или тебя вгоняет в ступор
отображение в виде "3600 секунд"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.11.2013, 01:16:21
    #38465858
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry SibiryakovЗанудовПодсказал бы лучше что нибудь...(
Какое слово из "использовать INTEGER" тебе непонятно? Или тебя вгоняет в ступор
отображение в виде "3600 секунд"?..

нет, не понятно пока как это реализовать на клиенте. чтоб в гриде у меня это превратилось во время.
...
Рейтинг: 0 / 0
15.11.2013, 01:18:41
    #38465861
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Dimitry SibiryakovЗанудовПодсказал бы лучше что нибудь...(
Какое слово из "использовать INTEGER" тебе непонятно? Или тебя вгоняет в ступор
отображение в виде "3600 секунд"?..

всмысле как посчитать понятно. а где посчитать не понятно... не писать же это в OnGetText
...
Рейтинг: 0 / 0
15.11.2013, 01:45:35
    #38465866
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
Т.е. получить интервал как разность двух времён - расжевали, а как интервал и время сложить, чтобы другое время получить - это надо ещё и в рот положить...
...
Рейтинг: 0 / 0
15.11.2013, 02:04:58
    #38465868
Занудов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложение времени
hvladТ.е. получить интервал как разность двух времён - расжевали, а как интервал и время сложить, чтобы другое время получить - это надо ещё и в рот положить...
Большое спасибо, теперь дошло:
Код: sql
1.
2.
3.
4.
SELECT CAuthor, Sum (CDuration - TIME '00:00:00') + Time '00:00:00'
FROM Clips, Repeats
WHERE ClipID = RClip AND RDate = '12.03.2013'
GROUP BY CAuthor;
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Сложение времени / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]