MySQL: Auswahl von Datensätzen nach Zeitverlauf

takano

Grünschnabel
Hallo, ich habe eine Tabelle mit ein paar tausend Datensätzen welche folgendermaßen aufgebaut sind:
3 Spalten (id, date_time,ms)

Beispiel
id 25
date_time 2010-06-10 10:58:55
ms 63

Tabelle:

id date_time ms
25 2010-06-10 10:58:55 630
27 2010-06-10 10:58:56 30
75 2010-06-10 10:59:05 10
130 2010-06-10 10:59:14 610
170 2010-06-10 10:59:21 820

Ich habe 2 Ziele und bin dafür zu unbegabt:
1. das Feld Millisekunden (ms) in das Feld date_time zu integrieren
also "2010-06-10 10:58:55 630" soll ein Feld sein
2. von der Gesamtzahl der Datensätze soll eine Tabelle an Datensätzen extrahiert werden, welche anhand von date_time im INtervall von 5 Sekunden die Datensätze ausliest. Beim Beispiel oben wären das:

25 2010-06-10 10:58:55 630
75 2010-06-10 10:59:05 10
130 2010-06-10 10:59:14 610
170 2010-06-10 10:59:21 820

Es sollen also minimal 5 Sek. zwischen den Datensätzen "vergangen" sein.
Sorry, das die Leerzeichen rausgeflogen sind.

Vielen Dank im Voraus
 
Zuletzt bearbeitet:
Für Fall 2 ist aber der Fall 1 nicht gut. Oder willst du die ms nur in der Ausgabe (also SQL-Statement) an den Zeitstempel angehängt haben? Dann kann ich dir CONCAT() empfehlen

Zu Fall 2 such ich morgen mal ne Lösung
 
Hallo,

vielen Dank für die schnelle Reaktion. Ziel 1, ist für Ziel 2 nicht zwingend notwendig. D.h. mir ist bombig viel geholfen, sobald die Auswertung mit den 5 Sekunden Intervallen funktioniert. Das Thema ms kann ich zu einem späteren Zeitpunkt auch noch angehen.

Greetings takano
 
Habe mal ein Test gemacht.
Meine Tabelle heisst iv, die Felder id und dt (DateTime)
SQL:
SELECT
	id,
	dt
FROM
	(
		SELECT
			id,
			TIMEDIFF(dt, @last_date) AS diff,
			@last_date:=dt AS dt
		FROM
			(SELECT * FROM iv ORDER BY dt) AS mydata,
			(SELECT @last_date := '0000-01-01 00:00:00') AS vars
	) AS dat
WHERE
	diff >=5
 
Zuletzt bearbeitet von einem Moderator:
Hallo, vielen Dank für die Antwort, leider bin ich erst heute dazu gekommen, das Programm auszuprobieren.

phpmyadmin wirft mir leider die Fehlermeldung im Anhang.... ich habe es nicht geschafft sie zu korrigieren.
 

Anhänge

  • Fehlermeldung.JPG
    Fehlermeldung.JPG
    58,9 KB · Aufrufe: 7
Auf die schnelle seh ich nur, dass du den Tabellennamen wegpunkte in ' geschrieben ahst. Das geht nicht.

Poste doch bitte dein SQL hier, damit wir alles sehen
 
Hallo,

sorry, dass ich wieder spät bin. Weihnachten bringt mich noch um:)


So sieht mein Code aus:

SELECT id,
date_time
FROM
(
SELECT
id,
TIMEDIFF(date_time, @last_date) AS diff,
@last_date:=date_time AS date_time

FROM
(SELECT * FROM wegpunkte ORDER BY date_time) AS mydata,
(SELECT @last_date := '0000-01-01 00:00:00') AS vars
)AS dat WHERE diff >=5
 
item: Bitte SQL-Scripte in SQL-Tags schreiben, damit man sie gut lesen kann

item: Welche MySQL-Version hast du?

item: Wie oben beschrieben, hast du im Printscreen den Tabellennamen in ' gesetzt. In deinem jetzt geposteten Beispiel ist dies nicht mehr der Fall. Ist die Fehlermeldung immer noch die gleiche?
 
Hallo,

sorry, weiss nicht was ein SQL Tag ist? Ich habe XAMP 1.7.3 installiert und MySQL-Client-Version: 5.1.41

Die Fehlermeldung sieht nun so aus:
 

Anhänge

  • Fehler.JPG
    Fehler.JPG
    31,5 KB · Aufrufe: 5
SQL-Tags: Hier im Forum dein Code in SQL-Tags setzen
Aus
[code=sql]SELECT
id
FROM
mytable[/code]
wir dann
SQL:
SELECT
    id
FROM
    mytable

der Erste Punkt meiner sritten Frage ist sehr wichtig. Du hast diesen aber noch nicht beantwortet.
 
Zuletzt bearbeitet von einem Moderator:
Zurück