Sebastian Kowalski

Sebastian Kowalski haruję jak wół

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

jest tabela z kolumną [dataczas], gdzie zapisywany jest czas insertów w formacie timestamp.
Chciałbym kasować wpisy, które są starsze niż 2 dni pracujące.

Delete tabela
where now() > tabela.dataczas + interval '2 day';

Nie do końca to działa, ponieważ usuwa mi tylko rekordy starsze niż 2 dni - bez uwzględniania czy będzie to w sobotę czy w niedzilę. Dla przykładu rekord dodany w piętek o 11:00 w takim przypadku zostanie usunięty w niedzielę o 11:00, a chcę żeby usunęło mi we wtorek (sobota i niedziela ma być pomijana).

Da się ?

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

10 min w guglu i:
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40'); - wyciągasz dzień tygodnia z daty i dalej już dasz radę. Tylko ma to jeden problem - nie bierze pod uwagę świąt poza weekendem a w Polsce (gdzie indziej pewnie też) jest tego trochę i tego nie zrobisz już bez zdefiniowania pełnego kalendarza z dniami wolnymi - ale może tego nie potrzebujesz.

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Zdefiniuj dzień pracujący. Czy święta państwowe wolne od pracy też ma omijać? Bo jak tak, to się nieco komplikuje :)

I tak to się dzieje jak się nie czyta całego wątku :)

A odnośnie dni wolnych, to jest to jazda na maksa. Na początek załóż sobie, że każdy kraj w każdym roku ma zupełnie inny zestaw i wcale nie chodzi o daty, w końcu Wielkanoc jest kosmicznie ruchoma, a niektóre święta czasami są, a czasami nie :) Po takim założeniu model danych definiuje się sam i nie jest miło.Szymon G. edytował(a) ten post dnia 10.09.12 o godzinie 22:55

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

tabela dni świątecznych - uzupełnij na kilka lat w przód i masz spokój, raptem jest tych naście rocznie

później jest z górki np. masz zbiór dat od wartości najmniejszej daty do największej minus święta i weekendy i np. bierzesz tylko rekordy których numeracja jest większa niż dwa od danego wpisu, w zasadzie nie używasz interval tylko rank_over, to akurat jest na tyle fajne wynik może być zbiorem do Delete i całość operacji załatwisz jednym zagnieżdżonym zapytaniem

ale sposobów jest wiele

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Przemysław R.:
tabela dni świątecznych - uzupełnij na kilka lat w przód i masz spokój, raptem jest tych naście rocznie

później jest z górki np. masz zbiór dat od wartości najmniejszej daty do największej minus święta i weekendy i np. bierzesz tylko rekordy których numeracja jest większa niż dwa od danego wpisu, w zasadzie nie używasz interval tylko rank_over, to akurat jest na tyle fajne wynik może być zbiorem do Delete i całość operacji załatwisz jednym zagnieżdżonym zapytaniem

ale sposobów jest wiele

a co jak firma ustala swoje dodatkowe dni wolne i one też nie mają być brane pod uwagę i ktoś zapomni je wprowadzić bo są ogłaszane na miesiąc przed?

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Tomek P.:
Przemysław R.:
tabela dni świątecznych - uzupełnij na kilka lat w przód i masz spokój, raptem jest tych naście rocznie

później jest z górki np. masz zbiór dat od wartości najmniejszej daty do największej minus święta i weekendy i np. bierzesz tylko rekordy których numeracja jest większa niż dwa od danego wpisu, w zasadzie nie używasz interval tylko rank_over, to akurat jest na tyle fajne wynik może być zbiorem do Delete i całość operacji załatwisz jednym zagnieżdżonym zapytaniem

ale sposobów jest wiele

a co jak firma ustala swoje dodatkowe dni wolne i one też nie mają być brane pod uwagę i ktoś zapomni je wprowadzić bo są ogłaszane na miesiąc przed?

Dlatego napisałem, że robi się niemiło :)

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Tomek P.:
Przemysław R.:
tabela dni świątecznych - uzupełnij na kilka lat w przód i masz spokój, raptem jest tych naście rocznie

później jest z górki np. masz zbiór dat od wartości najmniejszej daty do największej minus święta i weekendy i np. bierzesz tylko rekordy których numeracja jest większa niż dwa od danego wpisu, w zasadzie nie używasz interval tylko rank_over, to akurat jest na tyle fajne wynik może być zbiorem do Delete i całość operacji załatwisz jednym zagnieżdżonym zapytaniem

ale sposobów jest wiele

a co jak firma ustala swoje dodatkowe dni wolne i one też nie mają być brane pod uwagę i ktoś zapomni je wprowadzić bo są ogłaszane na miesiąc przed?

Tabela z listą dni wolnych od pracy jest dobrym rozwiązaniem. Jak ktoś zapomni - w najprostszym przypadku - ma po premii, drugi raz będzie pamiętać. Przecież to nie jest tak, że baza danych sama z siebie "działa". To jest tylko część systemu, w którego skład wchodzi wiele elementów, również białkowych - że się tak wyrażę. Jeżeli są zaprojektowane odpowiednie procedury biznesowe - każdy wie co ma robić. Jeżeli takie dni wolne są ważne, można zaprojektować procedurę weryfikacyjną... W sumie - wystarczy mail do pracowników, że jest dzień wolny. Zawsze jest szansa, że ktoś np. prezes zauważy, że mail nie przyszedł...

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Tomek P.:
ale sposobów jest wiele

a co jak firma ustala swoje dodatkowe dni wolne i one też nie mają być brane pod uwagę i ktoś zapomni je wprowadzić bo są ogłaszane na miesiąc przed?

a tego to już ustawa nie przewiduje ;) (znaczy się kodeks pracy)
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Tomek P.:
a co jak firma ustala swoje dodatkowe dni wolne i one też nie mają być brane pod uwagę i ktoś zapomni je wprowadzić bo są ogłaszane na miesiąc przed?

Procesy to problem biznesowy a nie bazodanowy.

konto usunięte

Temat: Postgress: interval '2 day', ale tylko dni pracujące. Da...

Dobrze zrealizowane święta są definiowalne przez użytkownika.
I tyle. Kalendarz na cały rok plus ostrzeżenie o brakujących świętach za X miesięcy.
Można uzupełniać raz na rok lub kilka lat.

W pewnym bardzo dobrze znanym banku kalendarzy było kilka:
- weekendy
- dni robocze
- święta państwowe

Takie kalendarze potem można na siebie nakładać w zależności od potrzeb.
Dodatkowo jak wspomniano każdy kraj / region może mieć swój kalendarz, co może być ważne przy wymianie walut.

Następna dyskusja:

Baza! Tylko jaka?




Wyślij zaproszenie do