Frage zu DATETIME (Tagesgrenze)

Frage zu DATETIME (Tagesgrenze)

am 16.03.2007 08:14:18 von Tobias Wendorff

Hallo Leute,

ich habe eine Frage zu DATETIME:

Gehört "2007-03-01 00:00:00" noch zum 01.03.2007 oder ist es schon
der 02.03.2007 ?

Laut Datensatz sollte es noch zum 01.03.2007 gehören. Es handelt
sich um Mittelwerte, die in der Zeit bis 24:00 Uhr erhoben wurden.
Im Originaldatensatz steht auch 24:00:00 Uhr drin, allerdings kann
DATETIME dies nicht intepretieren.

Vielen Dank
Tobias

Re: Frage zu DATETIME (Tagesgrenze)

am 16.03.2007 08:45:05 von Johannes Vogel

Hi Tobias

Tobias Wendorff wrote:
> ich habe eine Frage zu DATETIME:
> Gehört "2007-03-01 00:00:00" noch zum 01.03.2007 oder ist es schon
> der 02.03.2007 ?
> Laut Datensatz sollte es noch zum 01.03.2007 gehören. Es handelt
> sich um Mittelwerte, die in der Zeit bis 24:00 Uhr erhoben wurden.
> Im Originaldatensatz steht auch 24:00:00 Uhr drin, allerdings kann
> DATETIME dies nicht intepretieren.

2007-03-01 00:00:00 ist definitiv am 1.3.07.
2007-03-01 24:00:00 = 2007-03-02 00:00:00 und ist am 2.3.07.
Letzter Zeitpunkt am 1.3.07: 2007-03-01 23:59:59.

HTH, Johannes

Re: Frage zu DATETIME (Tagesgrenze)

am 16.03.2007 08:59:45 von Heiko Richler

Tobias Wendorff wrote:
> ich habe eine Frage zu DATETIME:
>
> Gehört "2007-03-01 00:00:00" noch zum 01.03.2007 oder ist es schon
> der 02.03.2007 ?

Es ist der erste Zeitpunkt im März. Also gehört es zum 1. März. Es ist
genau der Zeitpunkt vor dem es noch nicht der 1. März ist.

> Laut Datensatz sollte es noch zum 01.03.2007 gehören.

Ja?!

> Es handelt
> sich um Mittelwerte, die in der Zeit bis 24:00 Uhr erhoben wurden.

Verstehe ich leider nicht.

> Im Originaldatensatz steht auch 24:00:00 Uhr drin, allerdings kann
> DATETIME dies nicht intepretieren.

24:00:00 ist keine "Normierte" Uhrzeit. 2007-03-01 24:00:00 entspricht
2007-03-02 00:00:00. Das ist also schon der 02. März.

Wir sprechen gerne von von 24:00, das ist aber ungenau.

vgl. Dokumentatiion:
http://dev.mysql.com/doc/refman/5.1/de/datetime.html

Heiko
--
http://portal.richler.de/ Namensportal zu Richler
http://www.richler.de/ Heiko Richler: Computer - Know How!
http://www.richler.info/ private Homepage

Re: Frage zu DATETIME (Tagesgrenze)

am 16.03.2007 15:42:59 von Tobias Wendorff

Hallo Heiko,

Heiko Richler wrote:
>> Es handelt sich um Mittelwerte, die in der Zeit bis 24:00 Uhr
>> erhoben wurden.
>
> Verstehe ich leider nicht.

Es ist der letzte Wert einer Messreihe im 10-Minuten-Takt.

[...]
6. Messwert der 22. Stunde => 01.03.2007 23:00 Uhr

1. Messwert der 23. Stunde => 01.03.2007 23:10 Uhr
2. Messwert der 23. Stunde => 01.03.2007 23:30 Uhr
3. Messwert der 23. Stunde => 01.03.2007 23:30 Uhr
4. Messwert der 23. Stunde => 01.03.2007 23:40 Uhr
5. Messwert der 23. Stunde => 01.03.2007 23:50 Uhr
6. Messwert der 23. Stunde => 01.03.2007 24:00 Uhr

1. Messwert der 01. Stunde => 02.03.2007 00:10 Uhr
2. Messwert der 01. Stunde => 02.03.2007 00:20 Uhr
[...]


Die Daten kommen via CSV-Datei rein und sehen so aus (ich habe
die Werte weggelassen):

Datum;Stunde;Minuten;
01.03.2007;23;00;
01.03.2007;23;00;
01.03.2007;23;00;
01.03.2007;23;00;

Re: Frage zu DATETIME (Tagesgrenze) // korrekte Rück

am 16.03.2007 15:48:25 von Tobias Wendorff

Hallo Heiko,

Heiko Richler wrote:
>> Es handelt sich um Mittelwerte, die in der Zeit bis 24:00 Uhr
>> erhoben wurden.
>
> Verstehe ich leider nicht.

Es ist der letzte Wert einer Messreihe im 10-Minuten-Takt.

[...]
6. Messwert der 22. Stunde => 01.03.2007 23:00:00 Uhr

1. Messwert der 23. Stunde => 01.03.2007 23:10:00 Uhr
2. Messwert der 23. Stunde => 01.03.2007 23:30:00 Uhr
3. Messwert der 23. Stunde => 01.03.2007 23:30:00 Uhr
4. Messwert der 23. Stunde => 01.03.2007 23:40:00 Uhr
5. Messwert der 23. Stunde => 01.03.2007 23:50:00 Uhr
6. Messwert der 23. Stunde => 01.03.2007 24:00:00 Uhr

1. Messwert der 01. Stunde => 02.03.2007 00:10:00 Uhr
2. Messwert der 01. Stunde => 02.03.2007 00:20:00 Uhr
[...]


Die Daten kommen via CSV-Datei rein und sehen so aus (ich habe
die Werte weggelassen):

Datum;Stunde;Minuten;
01.03.2007;23;00;
01.03.2007;23;10;
01.03.2007;23;20;
01.03.2007;23;30;
01.03.2007;23;40;
01.03.2007;23;50;
01.03.2007;24;00;
02.03.2007;00;10;
02.03.2007;00;20;

Ich formatiere sie derzeit automatisch via PHP in den DATETIME Standard.

Es gibt jetzt aber verschiedene Probleme: Wenn ich jetzt 24:00 Uhr als
00:00 Uhr des neuen Tages ansehe, ändert sich an Sonntagen auch die
Woche, an dem die Messdaten aufgenommen wurden.

Bleibt mir wohl nichts anderes übrig, als 23:59:59 zu wählen, oder?

Grüße
Tobias

Re: Frage zu DATETIME (Tagesgrenze)

am 16.03.2007 15:50:38 von Tobias Wendorff

Hallo Johannes,

Johannes Vogel wrote:
> 2007-03-01 00:00:00 ist definitiv am 1.3.07.
> 2007-03-01 24:00:00 = 2007-03-02 00:00:00 und ist am 2.3.07.
> Letzter Zeitpunkt am 1.3.07: 2007-03-01 23:59:59.

Ich habe als Rückantwort zu Heiko Richters Post meine Daten
etwas ausführlicher kommentiert.

Die Daten, welche als 2007-03-01 00:00:00 bei mir markiert
sind, setzen sich aus Messwerten des 2007-03-01 zusammen.
Ich glaube wirklich, 23:59:59 wäre die einzige Möglichkeit :-(

Grüße
Tobias

Re: Frage zu DATETIME (Tagesgrenze) // korrekte Rückantwort

am 16.03.2007 17:13:52 von Johannes Vogel

Hallo Tobias

Tobias Wendorff wrote:
> Heiko Richler wrote:
>>> Es handelt sich um Mittelwerte, die in der Zeit bis 24:00 Uhr
>>> erhoben wurden.
>> Verstehe ich leider nicht.

Jetzt ist diese Aussage klar. Es sind Mittelwerte über Messungen im
Zeitintervall [23:50:01,24:00:00]. Niemand gibt dir vor, wie du diese zu
speichern hast. Stattdessen könntest du auch den Anfangswert des
Intervalls benutzen. Und da du wohl sowieso massiv grössere Abweichungen
in den Messungen und dank den 10-Minuten-Mittelwerten hinnimmst,
könntest du sogar hier 23:50 wählen.

Also nochmals: Konvertiere einfach 1.3.2007 24:00 nach 1.3.2007 23:50 um
(einfach minus 10 Minuten) und speichere das so ab. So bleiben dir alle
anderen Attribute (Wochentag, Jahr, etc.) erhalten.

Obwohl du sowieso IMHO nochmals durchdenken solltest, wieviel
Genauigkeit du wo einbüsst und ob sich der gesamte Aufwand überhaupt lohnt.

HTH, Johannes

Re: Frage zu DATETIME (Tagesgrenze) // korrekte Rück

am 16.03.2007 17:34:54 von Tobias Wendorff

Hallo Johannes,

Johannes Vogel wrote:
> Also nochmals: Konvertiere einfach 1.3.2007 24:00 nach 1.3.2007 23:50
> um (einfach minus 10 Minuten) und speichere das so ab. So bleiben dir
> alle anderen Attribute (Wochentag, Jahr, etc.) erhalten.

Dann muss ich aber bei der Suche bzw. bei der Ausgabe immer was addieren.
Es sollen z.B. aus den 10er Werten auch 60-Minuten- und 24-Stunden-
Mittelwerte erstellt werden.

Ich glaube, dass ich mit 23:59:59 bei 24:00 besser fahre, als damit,
alle Werte um 10 Minuten zu reduzieren.

> Obwohl du sowieso IMHO nochmals durchdenken solltest, wieviel
> Genauigkeit du wo einbüsst und ob sich der gesamte Aufwand überhaupt
> lohnt.

Auf jeden Fall, da die Daten momentan nur in einem sehr schlechten
Programm vorliegen und im Web und für Kunden einfach aufgearbeitet
werden sollen. Momentan passiert das in mühseliger Handarbeit.

Viele Grüße
Tobias

Re: Frage zu DATETIME (Tagesgrenze) // korrekte Rückantwort

am 16.03.2007 17:49:36 von Johannes Vogel

Hallo Tobias

Tobias Wendorff wrote:
> Johannes Vogel wrote:
>> Also nochmals: Konvertiere einfach 1.3.2007 24:00 nach 1.3.2007 23:50
>> um (einfach minus 10 Minuten) und speichere das so ab. So bleiben dir
>> alle anderen Attribute (Wochentag, Jahr, etc.) erhalten.
> Dann muss ich aber bei der Suche bzw. bei der Ausgabe immer was addieren.
> Es sollen z.B. aus den 10er Werten auch 60-Minuten- und 24-Stunden-
> Mittelwerte erstellt werden.
> Ich glaube, dass ich mit 23:59:59 bei 24:00 besser fahre, als damit,
> alle Werte um 10 Minuten zu reduzieren.

Andere Idee: Da du ja statistische Klassen hast, könntest du auch die
Klassenmitte wählen. Das wäre sogar die aller sauberste Lösung. Beschert
dir keine Probleme - auch keine Rundungsprobleme, weil der Intervall
[23:59:59,00:10:00] etwas grösser ist, als der nächste bzw. vorherige.
Zudem ist dies auch korrekt, weil du ja Mittelwerte hast - es macht also
Sinn, auch auf der Zeitachse den Mittelwert zu wählen.

HTH, Johannes

Re: Frage zu DATETIME (Tagesgrenze) // korrekte Rück

am 16.03.2007 21:27:25 von Tobias Wendorff

Johannes Vogel wrote:
> Andere Idee: Da du ja statistische Klassen hast, könntest du auch die
> Klassenmitte wählen. Das wäre sogar die aller sauberste Lösung.
> Beschert dir keine Probleme - auch keine Rundungsprobleme, weil der
> Intervall [23:59:59,00:10:00] etwas grösser ist, als der nächste bzw.
> vorherige. Zudem ist dies auch korrekt, weil du ja Mittelwerte hast -
> es macht also Sinn, auch auf der Zeitachse den Mittelwert zu wählen.

Du meinst also:

00:05:00
00:15:00
00:25:00
00:25:00
00:25:00
00:25:00

Re: Frage zu DATETIME (Tagesgrenze) // korrekte Rück

am 16.03.2007 21:34:39 von Tobias Wendorff

Sorry, mein OE spinnt heute total :-(


Johannes Vogel wrote:
> Andere Idee: Da du ja statistische Klassen hast, könntest du auch die
> Klassenmitte wählen. Das wäre sogar die aller sauberste Lösung.
> Beschert dir keine Probleme - auch keine Rundungsprobleme, weil der
> Intervall [23:59:59,00:10:00] etwas grösser ist, als der nächste bzw.
> vorherige. Zudem ist dies auch korrekt, weil du ja Mittelwerte hast -
> es macht also Sinn, auch auf der Zeitachse den Mittelwert zu wählen.

Du meinst also:
Uhrzeit;Wert
23:05:00;5
23:15:00;10
23:25:00;3
23:35:00;1
23:45:00;8
23:55:00;9
00:05:00;7

Generell werden 60-Minuten- und 24-Stunden-Mittelwerte abgefragt.
Soll ich diese in einer zusätzlichen Tabelle speichern oder immer
neu berechnen lassen? Das kommt eigentlich 1x im Monat vor, daher
sollte Echtzeitberechnung okay sein.

Was mir nur Sorgen macht ist die Ausgabe. Ich glaube, für die Ausgabe
schreibe ich wieder 24:00. Das wird aber noch Einiges an Anpassungsarbeit.