Re: Neu dabei und vermutlich -> nur ein Haufen

From: Bernd Helmle <mailings(at)oopsware(dot)de>
To: Wolfram Wahlich <wW(at)nordcad(dot)de>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Neu dabei und vermutlich -> nur ein Haufen
Date: 2006-06-01 12:47:18
Message-ID: 32612C5B4A12989969579640@[192.168.100.105]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

--On Mittwoch, Mai 31, 2006 14:50:43 +0000 Wolfram Wahlich <wW(at)nordcad(dot)de>
wrote:

> Date.....
> Hier habe ich schon einen Fallstrick gehabt.
>
> Man nehme eine Tabelle und trage den Geburtstag ein.
> Was kommt raus? Eine Zahl, die auf einen Tag um 1899
> herum aufaddiert liegt. Doll.
>

Wäre schön wenn du uns mit Informationen deines DB-Schemas versorgen
könntest.
So habe ich keine Ahnung was du da überhaupt treibst.

> Wenn ich das Feld in der Tabelle dann als Text
> definiere wird das Datum als Text eingefügt.
>
> OK.
>

Datumswerte werden immer zunächst als Text geparst, bevor sie entsprechend
gespeichert werden, bspw:

bernd(at)[local]:bernd #= CREATE TABLE date_test(myDate DATE);
bernd(at)[local]:bernd #= INSERT INTO date_test VALUES ('21.01.2005');
bernd(at)[local]:bernd #= INSERT INTO date_test VALUES ('16.04.2005');
bernd(at)[local]:bernd #= select * from date_test ;
mydate
------------
21.01.2005
16.04.2005
(2 rows)

> Wenn ich dann aber einen Stichtag bezogen auf
> irgendeinen Wert errechnet haben will, dann kann
> das die Tabelle mit dem TEXT- Feld Datum nicht mehr.
>
>
> Und... auch ein netter Nebeneffekt:
>
> Vor das Datum wird ein >>>'<<< gestellt.
>

Kommt sicher nicht von der Datenbank

> Wenn dieser Wert dann in die Tabelle zurück
> importiert wird kann ich damit so ohne weiteres
> nicht rechnen lassen.

Mit Timestamp bzw Date lässt sich einfach rechnen, bspw:

bernd(at)[local]:bernd #= select mydate + interval '1 month' from date_test ;
?column?
---------------------
21.02.2005 00:00:00
16.05.2005 00:00:00
(2 rows)

bernd(at)[local]:bernd #= select mydate - interval '1 day' from date_test ;
?column?
---------------------
20.01.2005 00:00:00
15.04.2005 00:00:00
(2 rows)

Man muss nur wissen, dass das Resultat ein Timestamp ist (Datum + Zeit).

--
Thanks

Bernd

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message A. Kretschmer 2006-06-01 13:23:14 Re: Insert-problem bei zugriff mittels login- und gruppenrole
Previous Message rene hankel 2006-06-01 12:36:19 Re: Insert-problem bei zugriff mittels login- und gruppenrole