Timediff substract meerdere tijden met pauzes
kvdd
22/05/2008 09:27:00Momenteel heb ik de volgende query:
Nu heb ik 4 soorten tijden, een begin en eindtijd van werken, en een begin en eindtijd van overuren.
Ik wil met mijn query het verschil tussen deze 4 tijden opgeteld hebben. Maar het probleem is, als je alleen de eintijd invult, dan 'denkt' de query dat bijv. 08:00:00 - 00:00:00 klopt.
Logisch ook, maar ik wil eigenlijk dat die dan niet die twee tijden van elkaar aftrekt.
Nu heb ik het volgende in de query geprobeerd:
Gevolg is, dat als er een tijd 00:00:00 is in de row, dan wordt er helemaal geen resultaat weergegeven.
Het klopt dus wat er allemaal gebeurt, maar dat is niet wat ik wil.
Dus:
1) Hoe kan ik 1 resultaat krijgen van het verschil tussen 4 tijden
2) en hoe zorg ik dat 00:00:00 tijden genegeerd worden?
Alvast bedankt!
PS: gehele antwoord hoeft niet, elke hint/tip is welkom! :)
Edit:Momenteel is het me gelukt om de tijden op te tellen, en de pauzes daarweer van af te trekken.
Alleen als er lege tijden in voor komen 00:00:00, in 1 van de tijden, (pauzes niet) dan gaat het mis.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
SELECT
TIMEDIFF(uren_eind, uren_begin) AS verschil,
TIMEDIFF(uren_eind_o, uren_begin_o) AS verschil2
FROM
uren
WHERE
u_id = '".$u_id."'
AND
DATE(uren_begin) = '".$sDag."'
"));
?>
SELECT
TIMEDIFF(uren_eind, uren_begin) AS verschil,
TIMEDIFF(uren_eind_o, uren_begin_o) AS verschil2
FROM
uren
WHERE
u_id = '".$u_id."'
AND
DATE(uren_begin) = '".$sDag."'
"));
?>
Nu heb ik 4 soorten tijden, een begin en eindtijd van werken, en een begin en eindtijd van overuren.
Ik wil met mijn query het verschil tussen deze 4 tijden opgeteld hebben. Maar het probleem is, als je alleen de eintijd invult, dan 'denkt' de query dat bijv. 08:00:00 - 00:00:00 klopt.
Logisch ook, maar ik wil eigenlijk dat die dan niet die twee tijden van elkaar aftrekt.
Nu heb ik het volgende in de query geprobeerd:
Gevolg is, dat als er een tijd 00:00:00 is in de row, dan wordt er helemaal geen resultaat weergegeven.
Het klopt dus wat er allemaal gebeurt, maar dat is niet wat ik wil.
Dus:
1) Hoe kan ik 1 resultaat krijgen van het verschil tussen 4 tijden
2) en hoe zorg ik dat 00:00:00 tijden genegeerd worden?
Alvast bedankt!
PS: gehele antwoord hoeft niet, elke hint/tip is welkom! :)
Edit:Momenteel is het me gelukt om de tijden op te tellen, en de pauzes daarweer van af te trekken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
SUBTIME(
ADDTIME(
TIMEDIFF(uren_eind, uren_begin),
TIMEDIFF(uren_eind_o, uren_begin_o)
),
ADDTIME(
uren_pauze,uren_pauze_o)
)
AS verschil
FROM
uren
WHERE
u_id = '".$u_id."'
AND
DATE(uren_begin) = '".$sDag."'
SUBTIME(
ADDTIME(
TIMEDIFF(uren_eind, uren_begin),
TIMEDIFF(uren_eind_o, uren_begin_o)
),
ADDTIME(
uren_pauze,uren_pauze_o)
)
AS verschil
FROM
uren
WHERE
u_id = '".$u_id."'
AND
DATE(uren_begin) = '".$sDag."'
Alleen als er lege tijden in voor komen 00:00:00, in 1 van de tijden, (pauzes niet) dan gaat het mis.
Gewijzigd op 01/01/1970 01:00:00 door Kvdd