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