LabVIEWForum.de
der zeitmäßig nächste Record in einer DB - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: der zeitmäßig nächste Record in einer DB (/Thread-der-zeitmaessig-naechste-Record-in-einer-DB)



der zeitmäßig nächste Record in einer DB - gottfried - 16.01.2009 15:04

Und noch eine Frage,

gegeben: eine Tabelle mit Messwerten und einem Zeitpunkt-Wert, also "16.1.2008 12:13:00" etc. So und jetzt komme ich mit einem völlig neuen Zeitpunkt (also nicht aus der Tabelle) und suche den am nächsten befindlichen Record.

Als Array könnte man "interpolate Array.vi" nehmen um daraus den nächsten zu ermitteln.

In der Datenbank fällt mir nichts anderes ein als eine Spalte einzuführen mit abs[Abstand zum jetzigen (neuen) Zeitpunkt] und dann danach zu sortieren und den kleinsten zu nehmen - ist vom Aufwand sicher .... schwach.

Oder ich pfeife auf die DB, kaufe mehr Memory und mache das als Array.

Bitte einen Denkanstoss

Gottfried


der zeitmäßig nächste Record in einer DB - Y-P - 16.01.2009 15:51

Spontan fällt mir auch nichts besseres als das

' schrieb:In der Datenbank fällt mir nichts anderes ein als eine Spalte einzuführen mit abs[Abstand zum jetzigen (neuen) Zeitpunkt] und dann danach zu sortieren und den kleinsten zu nehmen - ist vom Aufwand sicher .... schwach.

ein. Eine Abfrage ob was in der Nähe liegt wüsste ich momentan auch nicht.

Gruß Markus


der zeitmäßig nächste Record in einer DB - cb - 16.01.2009 17:31

' schrieb:Und noch eine Frage,

gegeben: eine Tabelle mit Messwerten und einem Zeitpunkt-Wert, also "16.1.2008 12:13:00" etc. So und jetzt komme ich mit einem völlig neuen Zeitpunkt (also nicht aus der Tabelle) und suche den am nächsten befindlichen Record.

Als Array könnte man "interpolate Array.vi" nehmen um daraus den nächsten zu ermitteln.

In der Datenbank fällt mir nichts anderes ein als eine Spalte einzuführen mit abs[Abstand zum jetzigen (neuen) Zeitpunkt] und dann danach zu sortieren und den kleinsten zu nehmen - ist vom Aufwand sicher .... schwach.

Oder ich pfeife auf die DB, kaufe mehr Memory und mache das als Array.

Bitte einen Denkanstoss

Gottfried
Alle Messwerte seit "Dein_Zeitstempel": (ich geh jetzt einfach mal davon aus, dass deine Spalte mit dem Timestamp "time_stamp" heist ...)

Code:
SELECT * FROM tbl_messwerte WHERE time_stamp > Dein_Zeitstempel ORDER BY time_stamp ASC

du willst nur 100 Messwerte haben?

Code:
SELECT TOP 100 * FROM tbl_messwerte WHERE time_stamp > Dein_Zeitstempel ORDER BY time_stamp ASC

du willst nur EINE Zeile:

Code:
SELECT TOP 1 * FROM tbl_messwerte WHERE time_stamp > Dein_Zeitstempel ORDER BY time_stamp ASC

geht alles mit SQLWink...


der zeitmäßig nächste Record in einer DB - Y-P - 16.01.2009 18:31

Klar.... WallWallWall

Gruß Markus

' schrieb:Alle Messwerte seit "Dein_Zeitstempel": (ich geh jetzt einfach mal davon aus, dass deine Spalte mit dem Timestamp "time_stamp" heist ...)

Code:
SELECT * FROM tbl_messwerte WHERE time_stamp > Dein_Zeitstempel ORDER BY time_stamp ASC

du willst nur 100 Messwerte haben?

Code:
SELECT TOP 100 * FROM tbl_messwerte WHERE time_stamp > Dein_Zeitstempel ORDER BY time_stamp ASC

du willst nur EINE Zeile:

Code:
SELECT TOP 1 * FROM tbl_messwerte WHERE time_stamp > Dein_Zeitstempel ORDER BY time_stamp ASC

geht alles mit SQLWink...



der zeitmäßig nächste Record in einer DB - gottfried - 19.01.2009 09:46

Genial

Danke


der zeitmäßig nächste Record in einer DB - cb - 19.01.2009 11:35

' schrieb:Genial

Danke

Weil du noch einen anderen Thread dazu offen hast in dem es darum geht die Zeitstempel zu aktualisieren (in Pseudo-Code...):

Code:
UPDATE tbl_deinTabellenName SET deineZeitStempelSpalte = deineZeitStempelSpalte + ZeitUmDieGeändertWerdenSoll WHERE deineZeitstempelSpalte IS BETWEEN Startzeit AND Endzeit

--> manipuliert den Wert deiner Timestamp-Spalte um den Wert den du vorgibst bei allen Zeilen bei denen der aktuelle Wert zwischen Startzeit und Endzeit liegt ...

wobei du jetzt noch das Datums-Format für Access rausfinden musst, ich glaub das war irgendwas mit # und / und dann musst du noch rausfinden, was man addieren/subtrahieren kann (ob das Sekunden sind oder Bruchteile von Stunden oder so) da müsst ich nun selbst nachschaun und da bin ich grad zu faulWink


der zeitmäßig nächste Record in einer DB - gottfried - 19.01.2009 17:20

Sorry - so geht das leider nicht.

Nimm eine Tabelle und in (sagen wir) der ersten Spalte unregelmäßige Zeitpunkte als String - so, die muss ich umformatieren. Mit anderen Worten ich muss die Zeitpunkte einzeln (die ich nicht kenne) lesen, umformatieren und schreiben. Keine Info "wann" der nächst Zeitstring ist.... In der Tabelle gehe ich zur nächsten Zeile bis ich "unten" bin, aber in SQL...

Inzwischen habe ich - sorry völlig unelgant - mit einem Read Spreadsheet 350.000 Zeilen gelesen und bearbeitet ... na ja... keine Ruhmestat

Gottfried