ďťż
 
Dni robocze - jak ? ďťż
 
Dni robocze - jak ?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • adwokat.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com