Вниз
Скачать: CL | DM;

Кто работал с данными типа Time - подскажите   Найти похожие ветки 

← →
kserg@ukr.net   (2002-05-07 17:36) [0]

Вот возникла необходимость сделать небольшую базу, осн.задачей котр. подсчет сколько юзер потратил времени(в часах:минутах) на решение конкрет.задач.
Никогда не сталкивался с подобным, поэтому вопрос - как лучше подойти к такому типу данных, чтобы удобнее было высчитывать суммарное время.


← →
asafr ©   (2002-05-07 18:00) [1]

Не буду конкретно объяснять... Но в MSSQL есть функции DATEADD, DATEDIFF, DATENAME, DATEPART - поиграйся с ними....


← →
DPetrovich ©   (2002-05-07 18:15) [2]

Если я правильно понял задачу, то да начала и дату завершения работы хранить в datetime, а разницу между ними вычислять (и возможно хранить) в минутах примерно по такой формуле
datediff(mi,"01.01.1900",datetime1-datetime2)


← →
kserg@ukr.net   (2002-05-07 18:28) [3]

Извините, только сейчас понял, что не задал исходные данные.
Входные данные след.:
юзер Иванов
задача проектирование оснастки
дата работы 07/05/02
кол-во потрачен.времени 5:45

т.е. на мой взгляд лучше хранить время как Numeric(5,2),
но тогда возникают как без потерь конвертировать десятичные минуты в целые часы.


← →
asafr ©   (2002-05-07 18:44) [4]

А может тебе в таблицу еще добавить поле. Н-р:
юзер Иванов
Начало работы (Time_Start) 07/05/02 10:00:00
окончание работы (Time_end) 07/05/02 18:05:00
Кол-во потраченного времени Time_end-Time_Start


← →
DPetrovich ©   (2002-05-07 18:45) [5]

>но тогда возникают как без потерь конвертировать десятичные >минуты в целые часы.
например...


← →
DPetrovich ©   (2002-05-07 18:46) [6]

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


← →
kserg@ukr.net   (2002-05-08 10:03) [7]

>например, какие могут быть потери?
имею ввиду как при суммировании времени переводить дробную часть из сотых в шестидисятиричные минуты
т.е. целую часть надо считать отдельно, дробную отдельно
иначе будем терять минуты


← →
Johnmen ©   (2002-05-08 11:20) [8]

На то и придуман формат DateTime , чтобы его можно было просто суммировать/вычитать и получать верный результат...


← →
kserg@ukr.net   (2002-05-08 11:45) [9]

Я полностью согласен насчет DateTime.
Но вот беда: подлый юзер не хочет фиксировать "когда начал - когда закончил", он в базу хочет вносить сразу кол-во времени потраченного на задачу...


← →
Johnmen ©   (2002-05-08 12:01) [10]

Ну так и пусть записывает :
в своей проге преобразуй то, что юзверь ввел к DateTime и прописывай в табл....


← →
kserg@ukr.net   (2002-05-08 15:57) [11]

Да, получить из двух дат интервал времени в минутах можно через
datediff(mi, dat1, dat2).
А как затем эти минуты разложить в удобоваримый формат типа ЧАСЫ:МИНУТЫ (имею ввиду прямо в SELECTe) ?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
3-97159
Aidan
2002-05-07 10:22
2002.05.30
Запрос к нескольким базам данных


3-97191
Sirus
2002-05-08 08:14
2002.05.30
Можно ли узнать сколько записей в SQL запросе во время его вып..?


1-97285
Eagle
2002-05-18 20:07
2002.05.30
Примоугольник с скругленными углами


3-97183
СергейКнязев
2002-05-06 16:33
2002.05.30
Почему в W2K размер Memo вроде не ограничен, а в W 98 ограничен


1-97331
Gumbert-Gumbert
2002-05-19 16:23
2002.05.30
Вопрос по функции: TTreeView.Items.AddObject(TTreeNode, S, Ptr)




   Наверх