![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто работал с данными типа Time - подскажите [MSSQL]
kserg@ukr.net © (2002-05-07 17:36:00)Вот возникла необходимость сделать небольшую базу, осн.задачей котр. подсчет сколько юзер потратил времени(в часах:минутах) на решение конкрет.задач.
Никогда не сталкивался с подобным, поэтому вопрос - как лучше подойти к такому типу данных, чтобы удобнее было высчитывать суммарное время.
kserg@ukr.net (2002-05-08 15:57:00) [1]Да, получить из двух дат интервал времени в минутах можно через
datediff(mi, dat1, dat2).
А как затем эти минуты разложить в удобоваримый формат типа ЧАСЫ:МИНУТЫ (имею ввиду прямо в SELECTe) ?
Johnmen (2002-05-08 12:01:00) [2]Ну так и пусть записывает :
в своей проге преобразуй то, что юзверь ввел к DateTime и прописывай в табл....
kserg@ukr.net (2002-05-08 11:45:00) [3]Я полностью согласен насчет DateTime.
Но вот беда: подлый юзер не хочет фиксировать "когда начал - когда закончил", он в базу хочет вносить сразу кол-во времени потраченного на задачу...
Johnmen (2002-05-08 11:20:00) [4]На то и придуман формат DateTime , чтобы его можно было просто суммировать/вычитать и получать верный результат...
kserg@ukr.net (2002-05-08 10:03:00) [5]>например, какие могут быть потери?
имею ввиду как при суммировании времени переводить дробную часть из сотых в шестидисятиричные минуты
т.е. целую часть надо считать отдельно, дробную отдельно
иначе будем терять минуты
DPetrovich (2002-05-07 18:46:00) [6]>но тогда возникают как без потерь конвертировать десятичные >минуты в целые часы.
например, какие могут быть потери?
DPetrovich (2002-05-07 18:45:00) [7]>но тогда возникают как без потерь конвертировать десятичные >минуты в целые часы.
например...
asafr (2002-05-07 18:44:00) [8]А может тебе в таблицу еще добавить поле. Н-р:
юзер Иванов
Начало работы (Time_Start) 07/05/02 10:00:00
окончание работы (Time_end) 07/05/02 18:05:00
Кол-во потраченного времени Time_end-Time_Start
kserg@ukr.net (2002-05-07 18:28:00) [9]Извините, только сейчас понял, что не задал исходные данные.
Входные данные след.:
юзер Иванов
задача проектирование оснастки
дата работы 07/05/02
кол-во потрачен.времени 5:45
т.е. на мой взгляд лучше хранить время как Numeric(5,2),
но тогда возникают как без потерь конвертировать десятичные минуты в целые часы.
DPetrovich (2002-05-07 18:15:00) [10]Если я правильно понял задачу, то да начала и дату завершения работы хранить в datetime, а разницу между ними вычислять (и возможно хранить) в минутах примерно по такой формуле
datediff(mi,"01.01.1900",datetime1-datetime2)
asafr (2002-05-07 18:00:00) [11]Не буду конкретно объяснять... Но в MSSQL есть функции DATEADD, DATEDIFF, DATENAME, DATEPART - поиграйся с ними....