Kto ma jutro urodziny?

Odpowiedz Nowy wątek
2011-09-27 15:22
0

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

Pozostało 580 znaków

2011-09-27 15:29
MiL
0

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.

No raczej nie do końca... Pamiętajmy o roku przestępnym... - Marcin.Miga 2011-09-27 15:33
nie wydaje mi się żeby taki problem istniał - krwq 2011-09-27 15:36
Chodzi ci o kogoś kto urodził się 29 lutego? Sam nie wiem kiedy on ma urodziny :) - MiL 2011-09-27 15:37
ale ja dodasz do osoby która urodziła sie 29 lutego 2000 np 3 lata to baza sama przeksztalci sobie ta date na np 1 marca albo 28 luty. sprawdz ile lat minelo miedzy rpkiem aktualnym a rokiem kazdej z osob i dodawaj ta liczbe jako przedzial do daty, reszta powinna dziac sie sama :P - krwq 2011-09-27 15:40

Pozostało 580 znaków

2011-09-27 15:35
0

http://wiki.postgresql.org/wi[...]_DATE_to_produce_another_DATE


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-09-27 15:49
2
krwq napisał(a)

http://wiki.postgresql.org/wi[...]_DATE_to_produce_another_DATE

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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij
edytowany 1x, ostatnio: Misiekd, 2011-09-27 15:50

Pozostało 580 znaków

2011-09-27 18:20
0

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ł)


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-09-27 19:07
1

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.

 
edytowany 1x, ostatnio: Zjarek, 2011-09-27 19:08
jesteś momentami przekonujący ;p - krwq 2011-09-27 19:36
Tej właśnie informacji mi brakowało. Kombinowałem z DOY, ale właśnie na tym się wywalało... - Marcin.Miga 2011-09-28 11:35

Pozostało 580 znaków

2011-09-28 09:47
MiL
0

Czyli porównujemy miesiąc i dzień a na 29 lutego robimy wyjątek. Nie ma co komplikować.

Pozostało 580 znaków

2011-09-28 10:08
bo
1

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

Pozostało 580 znaków

2011-09-28 10:24
1
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


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2011-09-28 10:39

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'))

Szacuje się, że w Polsce brakuje 50 tys. programistów
edytowany 1x, ostatnio: vpiotr, 2011-09-28 10:40
Chyba INTERVAL :) - Marcin.Miga 2011-09-28 11:34
Możliwe, nie testowałem - vpiotr 2011-09-28 20:12
Można to zindeksować używając wyrażenia DAY * 13 + MONTH (przechowywane jako osobne pole i/lub indeksowane). - vpiotr 2011-09-29 13:53

Pozostało 580 znaków

2011-09-28 11:02
bo
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.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0