Dni robocze - jak ?
Maciej_NT - 11-05-2007 12:32
Dni robocze - jak ?
Tabela absencji w ktorej dane zapisywane sa jako: DataOd | DataDo | KodAbsencji dni kalendarzowe mozna wyciagnac jako DataDo-DataOd+1, tu nie ma problemu.
....w jaki sposob moge wyciagnac dni robocze, zakladajac ze sobota i niedziela to dni wolne ?
Maciej_NT
keczerad - 11-05-2007 12:32
Maciej_NT napisał(a): > Tabela absencji w ktorej dane zapisywane sa jako: > DataOd | DataDo | KodAbsencji > dni kalendarzowe mozna wyciagnac jako DataDo-DataOd+1, tu nie ma problemu. >
jezeli to MSSQL, to mozna zrobic procedura :
set start = dayofyear(startDate) set stop = dayofyear(Startdate) set licznik = 0
while(warunek) if (weekday(dzien)=roboczy) set licznik=licznik+1
tak po krotce, gorzej ze swietami.
--
keczerad
http://www.e-mo.com.pl sklep w (X)HTML wraz z modulem do Subiekta GT
Grzegorz Danowski - 11-05-2007 12:32
Dnia Sun, 06 May 2007 10:27:59 +0200, keczerad napisał(a): >> Tabela absencji w ktorej dane zapisywane sa jako: >> DataOd | DataDo | KodAbsencji >> dni kalendarzowe mozna wyciagnac jako DataDo-DataOd+1, tu nie ma problemu. >> > > jezeli to MSSQL, to mozna zrobic procedura : > > set start = dayofyear(startDate) > set stop = dayofyear(Startdate) > set licznik = 0 > > while(warunek) > if (weekday(dzien)=roboczy) > set licznik=licznik+1 > > > tak po krotce, gorzej ze swietami.
Dawać pętlę i zabijać wydajność tam gdzie w ogóle nie jest potrzebna? Moim zdaniem prościej i wydajniej będzie utworzyć tabelę ze wszystkimi dniami wolnymi (soboty, niedziele plus święta). A potem sprawdzać ile dni wolnych, a więc rekordów w nowej tabeli znajduje się między poszczególnymi datami (DataOd i DataDo). A całkowitą liczbę dni można w MS SQL uzyskać z funkcji DATEDIFF(day, DataOd, DataDo).
Pozdrawiam Grzegorz
=?ISO-8859-2?Q?Przemys=B3aw_Rachwa=B3?= - 11-05-2007 12:32
Maciej_NT napisał(a): > Tabela absencji w ktorej dane zapisywane sa jako: > DataOd | DataDo | KodAbsencji > dni kalendarzowe mozna wyciagnac jako DataDo-DataOd+1, tu nie ma problemu. > > ....w jaki sposob moge wyciagnac dni robocze, zakladajac ze sobota i > niedziela to dni wolne ? > > Maciej_NT > sprawdź coś takiego jak numer dnia w tygodniu
np. poniedziałek = 1, niedziela = 7, wystarczy wtedy odfiltrować dni tygodnia mniejsze niż 6
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle - jak z liczby dni od roku 1900 wyciagnac date?
Jak z ilosci dni od roku 1900 uzyskac rok?
select dane z wielu dni z jednej godziny
(poczatkujacy)poszczegolne dni w miesiacu - mysql
MySQL - Dane z ostatnich 90 dni
rand co kilka dni
Roznica dni
Kolor poza obszarem roboczym w PS-CS2
[PostgreSQL] Liczba dni roboczych miedzy dwoma datami
select * - =?ISO-8859-2?Q?kolejno=B6=E6_p=F3l?=
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|