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

Подсчёт разницы дат   Найти похожие ветки 

← →
sergeii   (2008-01-28 10:56) [0]

Добрый день,
Может кто нибудь знает, как подсчитать разницу между двумя датами и ответ получить в часах.  
Спасибо.


← →
Семеныч   (2008-01-28 11:05) [1]

У типа TDateTime (он же TDate) целая часть - это кол-во дней, прошедших после условной "нулевой" даты, а дробная часть - это часть суток.

Значит, так: (Date1 - Date2) * 24


← →
Плохиш ©   (2008-01-28 11:06) [2]


> Может кто нибудь знает, как подсчитать разницу между двумя
> датами и ответ получить в часах.

Сначала найти разницу и результат умножить на количество часов в сутках.


← →
KilkennyCat ©   (2008-01-28 11:09) [3]

function SecondsBetween(const ANow: TDateTime; const AThen: TDateTime): Int64;


← →
KilkennyCat ©   (2008-01-28 11:10) [4]

> Плохиш ©   (28.01.08 11:06)

отлично. и какова погрешность тогда?


← →
Семеныч   (2008-01-28 11:13) [5]

> KilkennyCat ©   (28.01.08 11:10) [4]

Такая же, как у типа TDateTime.


← →
KilkennyCat ©   (2008-01-28 11:16) [6]

> Семеныч   (28.01.08 11:13)

да ну?
ну тогда две даты: 00:00:13 01.01.1980 и 05:40:32 01.01.1990


← →
sergeii   (2008-01-28 11:17) [7]

У меня есть база в каторой естё поле когда клиент подклиучился к базе и когда отключился мне надо подсчитать сколько времени он работал, есле поможет то база Firebird 1.5

Спасибо


← →
Семеныч   (2008-01-28 11:19) [8]

> KilkennyCat ©   (28.01.08 11:16) [6]

И что? Поясни, в чем фишка?


← →
sergeii   (2008-01-28 11:20) [9]

Простите великодушно за предидущее послание :)

У меня есть база, в каторой есть поля д1 и д2 когда клиент подклиучился к базе (д1) и когда отключился (д2) мне надо подсчитать сколько времени он работал, есле поможет то база Firebird 1.5

Спасибо


← →
Плохиш ©   (2008-01-28 11:21) [10]


> KilkennyCat ©   (28.01.08 11:16) [6]

Тоже хотел бы узнать, в чём фишка?


← →
ketmar ©   (2008-01-28 11:29) [11]

>[9] sergeii (28.01.08 11:20)
сказали ж: преобразуй в TDateTime и дальше DateUtil тебе в помощь.


← →
Anatoly Podgoretsky ©   (2008-01-28 14:55) [12]


> отлично. и какова погрешность тогда?

Стандартная 15 десятичных разрядов


← →
Anatoly Podgoretsky ©   (2008-01-28 14:59) [13]


> ну тогда две даты: 00:00:13 01.01.1980 и 05:40:32 01.01.
> 1990

87677,6719444444


← →
KilkennyCat ©   (2008-01-28 19:12) [14]

> [8] Семеныч   (28.01.08 11:19)
> [10] Плохиш ©   (28.01.08 11:21)


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


← →
homm ©   (2008-01-28 22:04) [15]

> [7] sergeii   (28.01.08 11:17)
> У меня есть база в каторой естё поле когда клиент подклиучился
> к базе и когда отключился мне надо подсчитать сколько времени
> он работал, есле поможет то база Firebird 1.5

С этого нужно было начинать.

SELECT ((UNIX_TIMESTAMP(`Date2`) - UNIX_TIMESTAMP(`Date1`)) / 60 / 60) AS WorkTime …


← →
Johnmen ©   (2008-01-28 23:00) [16]


> homm ©   (28.01.08 22:04) [15]

А это что такое UNIX_TIMESTAMP? Т.е. откедова?


← →
homm ©   (2008-01-28 23:14) [17]

> [16] Johnmen ©   (28.01.08 23:00)
> А это что такое UNIX_TIMESTAMP? Т.е. откедова?

По крайней мере в MySQL такая функция есть. Возращает количество секунд прошедших с начала эпохи юникс.



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

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



Память: 0.48 MB
Время: 0.012 c
2-1201629376
Ega23
2008-01-29 20:56
2008.02.24
Собственный Action


15-1201076635
Polevi
2008-01-23 11:23
2008.02.24
Ищу работу в Петербурге


11-1184395850
Thaddy
2007-07-14 10:50
2008.02.24
kol-ce question


2-1201801043
leonidus
2008-01-31 20:37
2008.02.24
Проблема с добавлением записи в базу


8-1174297899
San ciz
2007-03-19 12:51
2008.02.24
"Невидимое окно"




   Наверх