Datum "kürzen"

Hi,

nach langer Abstinenz bin icha uch mal wieder hier.
Schön zu sehen wie sich das Forum entwickelt hat!

Ich steh grad aufm Schlauch…

Ich hab eine Tabelle in der mehrere Datensätze mit einem Datum vorkommen z.B. ‘01.01.2007 13:41:05’.

Ich hab eine zweite Tabelle die ebenfalls Datensätze mit einem Datum enthält. Dieses Datum sieht allerdings so aus ‘01.01.2007 00:00:00’

Ich suche jetzt nach einer Möglichkeit die Datensätze aus der zweiten Tabelle zu selektieren, aber nur wenn es einen Datensatz in Tabelle 1 gibt, wo der Tag der gleiche ist.
In diesem Fall eben der ‘01.01.2007’.

Select * from Tabelle_1 as a
left join Tabelle_2 as b
on a.datum=b.datum

das wird ja kaum gehen… mir fehlt der richtige vergleichsoperator.

Danke für eure Mühe!

Crypi

Hallo Crypi

Ich suche jetzt nach einer Möglichkeit die Datensätze aus der zweiten Tabelle zu selektieren, aber nur wenn es einen Datensatz in Tabelle 1 gibt, wo der Tag der gleiche ist.
In diesem Fall eben der ‘01.01.2007’.

Versuch’s mal mit dem extract-Operator. Z.B als “extract(year from now())” wenn Du nur das Jahr willst.

Gruss
Rolf

HI,
danke für die schnelle Antwort!

Hast du irgendwo eine Doku zu der Funktion?
Ich hab noch nie was von der gehört.
Kann ich bei der Funktion auch den Wert einer anderen Spalte als Eingabe benutzen? In diesem Fall um das “extract(year from now())” durch “extract(day from tabelle1.datum)” zu ersetzen.

Crypi

Hallo Crypi

Hast du irgendwo eine Doku zu der Funktion?

Steht in der offiziellen Doku unter Datumsfunktionen um Element aus einem Timestamp zu extrahieren. Vgl. PostgreSQL: Documentation: 8.1: Date/Time Functions and Operators

Gruss
Rolf

Das eine ist ein DATE und das andere ein TIMESTAMP. Du willst zwei DATE vergleichen, also mache aus dem TIMESTAMP ein DATE. Das geht mit den CAST-Operator und der nennt sich : :smiley: ATE. Das einfach an den TIMESTAMP-Wert dranhängen

Andreas

Das sieht ja sehr vielversprechend aus!

Herzlichen Dank!

Ich melde mich wenn ich nochmal Probleme haben sollte.

EDIT: Ich meine die extract-Version

Crypi

Hi,

ich hab nochmal eine Frage zu extract…

ist damit auch moglich denn tag der woche aus einem timestamp herauszufinden?
also so nach dem motto:
0=sonntag
1=montag

oder gibt es mit einer anderen funktion die mögluchkeit den wochentag zu bestimmen?

edit: dow…

tja wer lesen kann ist klar im vorteil…


Danke für eure Hilfe!
Crypi

extract(dow from current_date);

Extract kann noch einiges mehr, Doku-lesen macht klug :wink:

danke!

war wohl nur etwas schneller im suchen als du im antowrten… :slight_smile:

ich hab jetzt aber eine weitere frage:

kann ich als timestamp auch eine spalte einer tabelle angeben??

Es sieht so aus als wenn das nicht ginge…

Crypi



test=# create table foo (ts timestamptz default now(), hint text);
CREATE TABLE
test=*# insert into foo (hint) values ('RTFM!');
INSERT 0 1
test=*# select extract(dow from ts), hint from foo;
 date_part | hint
-----------+-------
         5 | RTFM!
(1 row)

Andreas

danke!

ich hatte das “TIMESTAMP” noch im extract stehen…

an welcher stelle des FM hätte es denn gestanden ? :wink:

Crypi

Hey. Soll ich es Dir noch vorlesen?

PostgreSQL: Documentation: 8.2: Functions and Operators, dort weiterklicken.