Datumeingabe von Textfeld in Tabelle speichern

KDSK18

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich möchte gerne für meine Datenbank die Möglichkeit haben den Zeitraum von Datum … bis Datum… (in einzelne Textfelder) einzugeben und das was dort eingegeben wird in einer Tabelle gespeichert wird. Damit ich mich bei Abfragen auf den Zeitraum (Tabellen) beziehen kann.

Bei den weiteren Abfragen habe ich eine Spalte in dem das Datum eingegeben ist, dort möchte ich dann Filtern von Datum; bis Datum.

Meine Frage ist, wie mache ich das am besten?
 
Werbung:
Du erstellst eine Tabelle, etwa wie folgt:

Code:
test=*# create table kdsk(von date, bis date);
CREATE TABLE

Beachte, daß Du korrekte Datentypen verwendest, hier also DATE. Bitte kein TEXT für sowas!!1elf

Da fügst Du die Daten ein:

Code:
test=*# insert into kdsk values ('2018-01-01','2018-01-31');
INSERT 0 1
test=*# insert into kdsk values ('2018-02-01','2018-02-28');
INSERT 0 1
test=*# insert into kdsk values ('2018-03-01','2018-03-31');
INSERT 0 1

Nun kannst Du Abfragen erstellen, z.B.:

Code:
test=*# select * from kdsk where von < '2018-03-15' and bis > '2018-03-15';
  von  |  bis   
------------+------------
 2018-03-01 | 2018-03-31
(1 Zeile)

Eleganter geht das noch, wenn man RANGE-Datentypen hat:

Code:
test=*# rollback;
ROLLBACK
test=# create table kdsk(von_bis daterange);
CREATE TABLE
test=*# insert into kdsk values ('[2018-01-01,2018-01-31)');
INSERT 0 1
test=*# insert into kdsk values ('[2018-02-01,2018-02-28)');
INSERT 0 1
test=*# insert into kdsk values ('[2018-03-01,2018-03-31)');
INSERT 0 1
test=*# select * from kdsk where von_bis @> '2018-03-15'::date;
  von_bis   
-------------------------
 [2018-03-01,2018-03-31)
(1 Zeile)

test=*#

PostgreSQL hat sowas, aber das hast Du ja nicht, daher zeige ich das auch gar nicht erst.


PS.: Dir scheinen elementarste Grundlagen zu fehlen. Es gibt massig Bücher zu Datenbanken etc. Lesen!
 
Werbung:
In Access dürfte vermutlich auch noch BETWEEN funktionieren, das würde die Sache etwas übersichtlicher machen:
Code:
select * from kdsk where '2018-03-15' BETWEEN von AND bis;
 
Zurück
Oben