wie kann ich ein negatives Datum und Zeitspannen speichern - Format
wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 01.05.2007 11:37:48 von Jens Drexsler
Hallo,
es sollen solche Ereignisse gespeichert werden - als
Fixdatum oder Zeitspanne:
8000 - 2000 Jahre | Ereignis ...
20000 | Ereignis ...
(* Geburt dieses Arabers ...)
1248 - 1263 | Ereignis ...
1500 | Mittelalter ...
1986 | Tschernobyl ...
nun könnte man das mit einen Anfangs- und einem Enddatum
speichern, wobei das Enddatum optional bleibt.
In welchem Format könnte man in MySql 4 oder 5 am
besten speichern? Julianischer Kalender reicht
ja nicht weit genug, da es z.T. geologische
Zeiträume betrifft.
Müsste man ggf. zwei Tabellen führen?
Wie würdet ihr das machen?
Danke für Tipps,
Jens
Re: wie kann ich ein negatives Datum und Zeitspannen speichern -Format
am 01.05.2007 13:34:16 von Heiko Richler
Jens Drexsler wrote:
> es sollen solche Ereignisse gespeichert werden - als
> Fixdatum oder Zeitspanne:
>
> 8000 - 2000 Jahre | Ereignis ...
> 20000 | Ereignis ...
> (* Geburt dieses Arabers ...)
> 1248 - 1263 | Ereignis ...
> 1500 | Mittelalter ...
> 1986 | Tschernobyl ...
>
> nun könnte man das mit einen Anfangs- und einem Enddatum
> speichern, wobei das Enddatum optional bleibt.
Da würde ich immer einen Anfang und ein Ende abspeichern. Sind Anfang
und Ende identisch handelt es sich eben um einen Fixen Zeitpunkt. Auf
diese Weise sind Vergleiche am einfachsten allgemeingültig zu formulieren.
"Welche Städte wurde nach der Antike gegründet." und "Wer wurde nach
Tschernobyl geboren." sind dann fast geleiche Abfragen.
> In welchem Format könnte man in MySql 4 oder 5 am
> besten speichern? Julianischer Kalender reicht
> ja nicht weit genug, da es z.T. geologische
> Zeiträume betrifft.
> Müsste man ggf. zwei Tabellen führen?
> Wie würdet ihr das machen?
Das hängt entscheident von den Zielen ab. Wenn es um die Chronologie
geht würde ich ein Astronomisches Datum verwenden. In der Datenbank kann
das als Decimal abgespeichert werden. Eine Umrechnung in andere
Datumsformate sollte immer möglich sein.
Zusätzlich könntest Du speichern welcher der bevorzugte Kalender für den
Wert ist.
Heiko
--
http://portal.richler.de/ Namensportal zu Richler
http://www.richler.de/ Heiko Richler: Computer - Know How!
http://www.richler.info/ private Homepage
Re: wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 01.05.2007 14:06:13 von Jens Drexsler
Hallo Heiko,
Danke!
> ...
> Da würde ich immer einen Anfang und ein Ende abspeichern. Sind Anfang
> und Ende identisch handelt es sich eben um einen Fixen Zeitpunkt. Auf
> diese Weise sind Vergleiche am einfachsten allgemeingültig zu formulieren.
ja stimmt. Ist bloß bischen mehr Tippen ...
>
> "Welche Städte wurde nach der Antike gegründet." und "Wer wurde nach
> Tschernobyl geboren." sind dann fast geleiche Abfragen.
.... wenn man die Abfrage nicht eingrenzt.
> ...
> Das hängt entscheident von den Zielen ab. Wenn es um die Chronologie
> geht würde ich ein Astronomisches Datum verwenden.
mir neu. Hab´ diesbezüglich noch nichts ergoogled ...
> ...
> Zusätzlich könntest Du speichern welcher der bevorzugte Kalender für den
> Wert ist.
guter Tipp!
Grüße, Jens
Re: wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 03.05.2007 16:25:15 von tkshorty
Also wenn du wirklich nur mit Jahreszahlen arbeitest dann würd ich dir
sogar dazu raten int zu nehmen.
Re: wie kann ich ein negatives Datum und Zeitspannen speichern -Format
am 07.05.2007 18:19:22 von Jens Drexsler
hi tkshorty.
Danke!
> Also wenn du wirklich nur mit Jahreszahlen arbeitest dann würd ich dir
> sogar dazu raten int zu nehmen.
ja - stimmt eigentl. auch.
Ich denk, ich nehme dafür zunächst drei Tabellen:
Datum Anfang | Datum Ende
als date, mit YYYY-MM-DD
Das funktioniert ja bis zum Jahr 1000 und
darunter ggf. - das muß ich mal beobachten oder
ich nehme einfach Textformat?
dann für die Zeit vor "0" eine:
Datum Anfang | Datum Ende
als INT
ggf. mit neg. Vorzeichen oder einfach
unsigned und werte sie später als negativ
und dann eben noch die
Ereignis-Tabelle
Grüße, J.
Re: wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 07.05.2007 21:54:00 von do.not.REMOVETHAT
Jens Drexsler schrieb:
> Ich denk, ich nehme dafür zunächst drei Tabellen:
>
> Datum Anfang | Datum Ende
> als date, mit YYYY-MM-DD
> Das funktioniert ja bis zum Jahr 1000 und
> darunter ggf. - das muß ich mal beobachten oder
> ich nehme einfach Textformat?
>
> dann für die Zeit vor "0" eine:
> Datum Anfang | Datum Ende
> als INT
Ich halte es nicht für sinnig, für eine Sache zwei Tabellen zu nehmen -
nur weil Du sie wegen technischer Beschränkungen in unterschiedlichen
Formaten speichern willst.
An Deiner Stelle würde ich eine Klasse schreiben, welche Dir das
Datumsproblem behandelt. Die Klasse sollte *ein* Format haben, in dem
sie speichert und entsprechende Eingabe- und Ausgbaeformate zur
verfügung stellen, die es Dir ermöglichen, praktisch Formulareingaben
entgegenzunehmen und entsprechende Ausgaben zu machen.
Bedenken würde ich dabei insbesondere:
* Unterschied zwischen Zeitpunkt und Zeitraum
* Angaben unterschiedlicher Präzision (Jahr, Tag, Uhrzeit)
* Möglichkeit von "ca.-Zeit"
Bei der Bestimmung des Speicherformats würde ich ein Format wählen,
welches es Dir erlaubt, bei der Kommunikation mit der Datenbank
entsprechend zu filtern und zu sortieren. Entsprechendes SQL sollte die
Klasse Dir generieren.
Grüße, Matthias
--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
Re: wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 08.05.2007 01:15:45 von Jens Drexsler
Hallo Matthias,
> ...
> An Deiner Stelle würde ich eine Klasse schreiben, welche Dir das
> Datumsproblem behandelt. Die Klasse sollte *ein* Format haben, in dem
> sie speichert und entsprechende Eingabe- und Ausgbaeformate zur
> verfügung stellen, die es Dir ermöglichen, praktisch Formulareingaben
> entgegenzunehmen und entsprechende Ausgaben zu machen.
ich habe ja gegoogled. Auf *ein* Format bin ich nicht gekommen -
außer man näme YYYYYYYYY-MM-DD. - Das erscheint mir
ziemlich verwegen, wäre aber eigentlich das einzig "Stringente".
Oder dies eben in drei Feldern: für Jahr, ...
Die Autoren, die ich fand, arbeiten mit verschiedenen Zeitformaten und
passenden Ären(?, Ära.).
>
> Bedenken würde ich dabei insbesondere:
>
> * Unterschied zwischen Zeitpunkt und Zeitraum
Zeitraum ist, wenn *ein Enddatum* gesetzt wurde - oder wenn
Datensätze "Zusammengehörigkeitskennungen" erhalten haben, was
die Sache aber "etwas" komplizierter werden lassen könnte.
(Ich hatte sowas mal mit "Verknüpfungstabellen" aus IDs gemacht.)
> * Angaben unterschiedlicher Präzision (Jahr, Tag, Uhrzeit)
Frühjahr, Sommer. Das Jahr wäre das mindeste - fehlende Werte
nach rechts würde ich als nicht gegeben werten.
> * Möglichkeit von "ca.-Zeit"
Jahreszeiten. Ggf. auch per Kennung/Checkbox.
> ...
Danke!
Viele Grüße, J.
Re: wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 08.05.2007 10:32:52 von do.not.REMOVETHAT
Jens Drexsler schrieb:
> ich habe ja gegoogled. Auf *ein* Format bin ich nicht gekommen -
> außer man näme YYYYYYYYY-MM-DD. - Das erscheint mir
> ziemlich verwegen, wäre aber eigentlich das einzig "Stringente".
Spricht doch nichts ernstzunehmendes dagegen. Du musst halt die Checks,
die sonst die Datenbank macht in der Klasse machen und verbrauchst
bisschen mehr Speicherplatz...
> Oder dies eben in drei Feldern: für Jahr, ...
Hätte den Vorteil, dass man recht einfach zwischen "24. Dezember" und
"24. Dezember, 0:00 Uhr" unterscheiden könnte.
Ich würde die Bedenken gegenüber "Speicherung in mehreren Feldern" und
Speicherung als String" ablegen und einfach etwas nehmen, was funktioniert.
Grüße, Matthias
--
http://www.trullala.de
--
Der Trend geht ganz eindeutig zur Zweitsignatur.
Re: wie kann ich ein negatives Datum und Zeitspannen speichern - Format
am 09.05.2007 12:25:39 von Jens Drexsler
Hallo Matthias,
> ...
vielen Dank für die Hinweise -
dann also in funktionaler Form :-) ...
Grüße, J.