Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Вниз

Кто работал с данными типа 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 вся ветка

Форум: "Базы";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
14-97402
XEL
2002-04-21 22:39
2002.05.30
HELP


3-97177
AnnaSh
2002-05-08 08:50
2002.05.30
Помогите начинающему!


4-97463
Hammer
2002-03-28 17:10
2002.05.30
трэй?


1-97264
Dizer
2002-05-18 12:30
2002.05.30
Преобразование 16-ричного числа в двоичное


1-97295
Rooman
2002-05-16 09:18
2002.05.30
Поменять шрифт у всех компонентов на форме на Tahoma





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский