select alle records die sinds de laatste werkdag en nu zijn gemaakt

Status
Niet open voor verdere reacties.

manueld

Gebruiker
Lid geworden
12 feb 2012
Berichten
216
ik heb een sql tabel met records waarvan een veld datum en tijd bevat. nu wil ik graag alle records selecteren die tusen de laatste werkdag 14:10 uur (maandag t/m vrijdag, feestdagen uitgezonderd) en nu liggen.hoe bouw ik een dergelijke query op. ik zit zelf te denken aan een tabel met werk/feestdagen om te kunnen bepalen welke dagen de werkdagen zijn.

ik heb nu
Code:
select count(PoRecordUid) from tblPO where  DATEADD(day, DATEDIFF(day, 0, PoCDate), 0) = DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
maar deze geeft alleen vandaag en niet gister middag en houd ook geen rekening met zaterdag, zon en feestdagen.
 
Je bedoelt dus alle records tussen vrijdag 14:10 en maandag 08:00? Dan krijg je iets als:

[cpp]
SELECT * FROM tblPO WHERE (DAYOFWEEK(date) <= 2 AND TIME(date) <= TIME('08:00:00')) OR (DAYOFWEEK(date) >= 6 AND TIME(date) >= TIME('14:10:00'))
[/cpp]

(hierbij heb ik wel nog geen rekening gehouden met feestdagen)
 
ik bedoel idd iets zoals je aangeeft maar dan dus alles tussen de laatste werkdag vor vandaag om 14:00 uur en nu zoals je het nu aangeeft kom ik in de problemen want als gisteren een werkdag was moet het dus vandaag -1 zijn maar als er een weekend tussen zit moet het dus vandaag - 3 zijn. ook kom je zo niet uit met de datum en tijd gisteren om 7:00 want die voldoet niet aan de gestelde criteria.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan