Witam!
Jak z postgreSQLa wyciągnąć informację, kto ma jutro urodziny? Kombinuję na wiele sposobów i nie wychodzi tak jak bym chciał...
Z góry dzięki
Witam!
Jak z postgreSQLa wyciągnąć informację, kto ma jutro urodziny? Kombinuję na wiele sposobów i nie wychodzi tak jak bym chciał...
Z góry dzięki
Nie wiem jak w Postgrsie to wygląda ale ogólnie musisz porównać miesiąc i dzień daty urodzenia z miesiacem i dniem daty jutrzejszej.
krwq napisał(a)
ale jakie dodawanie lat???? Rozbijasz datę urodzin na dzień i miesiąc i jutrzejszą datę na dzień miesiąc i porównujesz. Mam wrażenie, że niektórzy zamiast używać najprostszych rozwiązań myślą tylko jak tu sobie życie skomplikować
BTW date_part albo extract + dokumentacja
a jeśli dzisiaj byłby 28 luty 2001, a ktoś miałby urodziny 29 lutego, to chyba mogę śmiało powiedzieć że jutro ma urodziny? (tylko zastanawiam się czy 1 marca będę też mógł powiedzieć że wczoraj miał)
Jak ma urodziny 29 lutego i nie jest rok przystępny, to ma urodziny 28 lutego. Tak jest liczone np. dla pełnoletności. Z kodeksu cywilnego:
Art. 112. Termin oznaczony w tygodniach, miesiącach lub latach kończy się z upływem dnia, który nazwą lub datą odpowiada początkowemu dniowi terminu, a gdyby takiego dnia w ostatnim miesiącu nie było - w ostatnim dniu tego miesiąca. Jednakże przy obliczaniu wieku osoby fizycznej termin upływa z początkiem ostatniego dnia.
Czyli porównujemy miesiąc i dzień a na 29 lutego robimy wyjątek. Nie ma co komplikować.
Ale samo porównanie miesiąca i dnia będzie raczej skomplikowane:
bo napisał(a)
Ale samo porównanie miesiąca i dnia będzie raczej skomplikowane:
- po 31.03 jest 1.04
- po 31.12 jest 1.01
- po 30.03 jest 31.03
- po 30.04 jest 1.05
ale kogo to obchodzi??? Chyba, że chcesz zamienić DZISIEJSZĄ datę na miesiąc i dzień i dopiero takie coś zwiększać o jeden. No ale wtedy zamiast programowaniem powinieneś się zająć szydełkowaniem
Spróbuj coś takiego (dob = data urodzenia)
SELECT * from uzytkownicy u
where
EXTRACT(DAY FROM u.dob) = EXTRACT(DAY FROM (current_date + integer '1'))
and
EXTRACT(MONTH FROM u.dob) = EXTRACT(MONTH FROM (current_date + integer '1'))
@Misiekd, rozbijanie na dzień i miesiąc to Twój pomysł.
Rozbijasz datę urodzin na dzień i miesiąc i jutrzejszą datę na dzień miesiąc i porównujesz.
Ja bym na niego nie wpadł nawet w stanie upojenia alkoholowego.
bo napisał(a)
@Misiekd, rozbijanie na dzień i miesiąc to Twój pomysł.
Rozbijasz datę urodzin na dzień i miesiąc i jutrzejszą datę na dzień miesiąc i porównujesz.
czytanie ze zrozumieniem się kłania. Napisałem JUTRZEJSZĄ datę a nie dzisiejszą.
Ja bym na niego nie wpadł nawet w stanie upojenia alkoholowego.
co tylko potwierdza fakt, że programowanie nie jest dla ciebie