Alle von nächstem Monat selektieren

xlumia

Benutzer
Beiträge
7
Ich möchte aus meiner Tabelle Personen alle selektieren, die nächsten Monat Geburtstag haben.

select v_name, n_name, geb_datum from personen;

Ich steh leider gerade total auf der Leitung und habe keine Ahnung wie ich das machen soll.
Kann mir jemand weiter helfen?
 
Werbung:
prüfe einfach, ob das Alter in Jahren der Personen sich zwischen heute und heute+30 Tagen ändert, In PostgreSQL ganz einfach:

Code:
test=# create table birthdays(id serial primary key, name text, birthday date);
CREATE TABLE
test=*# insert into birthdays select s, 'name ' || s::text, '1980-01-01'::date + '1day'::interval * random()*10000 from generate_series(1, 100) s;
INSERT 0 100
test=*# select * from birthdays limit 15;
 id |  name  |  birthday  
----+---------+------------
  1 | name 1  | 1988-02-14
  2 | name 2  | 1991-11-01
  3 | name 3  | 1993-10-12
  4 | name 4  | 1993-09-28
  5 | name 5  | 1987-11-23
  6 | name 6  | 1986-09-22
  7 | name 7  | 1991-06-15
  8 | name 8  | 2005-03-27
  9 | name 9  | 1986-01-11
 10 | name 10 | 1995-03-13
 11 | name 11 | 1995-10-28
 12 | name 12 | 1981-05-17
 13 | name 13 | 1983-07-23
 14 | name 14 | 1991-01-31
 15 | name 15 | 1990-09-24
(15 Zeilen)

test=*# select * from birthdays where extract(year from age(birthday)) != extract(year from age(current_date + 30, birthday));
 id  |  name  |  birthday  
-----+----------+------------
  12 | name 12  | 1981-05-17
  22 | name 22  | 1993-05-27
  47 | name 47  | 1983-05-06
  52 | name 52  | 1986-05-01
  67 | name 67  | 1994-05-17
  84 | name 84  | 1980-05-09
  89 | name 89  | 1987-05-02
 100 | name 100 | 1985-05-27
(8 Zeilen)

test=*#
 
Oder man prüft, welches Geburtsdatum im nächsten Monat liegt:
Code:
select * from birthdays where extract(month from birthday) = extract(month from add_months(sysdate,1))
 
Code:
test=*# select * from birthdays where extract(month from birthday) = 5;
 id  |  name  |  birthday  
-----+----------+------------
  12 | name 12  | 1981-05-17
  22 | name 22  | 1993-05-27
  43 | name 43  | 1992-05-30
  47 | name 47  | 1983-05-06
  52 | name 52  | 1986-05-01
  67 | name 67  | 1994-05-17
  84 | name 84  | 1980-05-09
  89 | name 89  | 1987-05-02
 100 | name 100 | 1985-05-27
(9 Zeilen)
 
Werbung:
Zurück
Oben