Probleme mit einer SQL-Anweisung zur Datum und Zeitauslesung

ruebezahn0

Grünschnabel
Hallo

Habe ein Problem wie ein "Select" Befehl aussehen könnte wenn ich in einer Datenbank eine Spalte namens Datum_und_Uhrzeit hab die folgenden Inhalt hat:
"16.03.2007 23:45:45"

Das Ziel ist es das ich immer nur drei Tage auslesen möchte und ich ja nun den String aus der Spalte Datum_und_Uhrzeit filtern muss um an das Datum zu kommen. Kann mir jemand helfen wie so eine Filterfunktion in VB aussehen könnte?
 
Hi!

Also ich habe noch nicht ganz verstanden, was dein Problem ist!

Wenn du einfach die letzten drei Tage auslesen möchtest, nimm in deinem SQL-Befehl doch folgendes auf:
Code:
SELECT  * FROM Tabellenname WHERE [Anweisung] ORDER BY Datum_und_Uhrzeit DESC Limit 3

Oder du grenzt das Datum ein:
Code:
SELECT  * FROM Tabellenname WHERE DATE_SUB('2007-11-03',INTERVAL 3 DAY) <= Datum_und_Uhrzeit;
-> Gibt alle Datensätz aus der Tabelle zwischen dem 09.03.07 - 11.03.07.

Die Beispiele auf MySQL!
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Falls du eine andere DB, z.B. Access nutzt gibt bitte bescheid.

Viele Grüße,
Jacka
 
Hallo

Danke erstmal für die schnelle Antwort. Mein Ziel ist es aus einer Datenbank alle Datensätze auszulesen die am heuttigen Tag sowie vor zwei Tagen hinzugefügt wurden. Dabei war mein erster Ansatz, da ich eine Spalte mit Datum und Uhrzeit hab
"12.03.2007 23:45:56" das Datum aus dem kompletten String herauszufiltern um somit eine eindeutige Bedingung für den SQL Befehl zu haben. Da ich mich noch nicht so richtig mit den ganzen Funktionen von SQL auskenne war das halt mein einziger Ansatz. Wenn es einfacher geht bin ich für alles offen. Wie würde solch eine Abfrage in VB aussehen wie du sie vorhin geschrieben hast. Bis jetzt sieht sie so aus:

.Source = "SELECT * FROM" & " " & "Chargenmischanlage WHERE" & " " & "Datum_und_Uhrzeit" & " " & "ORDER BY" & " " & "Datum_und_Uhrzeit" & " " & "DESC Limit 3"

Diese haut aber nicht hin. Warum?
 
Hi!

Probier mal dies:
Code:
SELECT * FROM Tabelle WHERE DATE_SUB(CURDATE(),INTERVAL 3 DAY) <= Datum_und_Uhrzeit;

Welche DB benutzt du denn genau?

Viele Grüße,
Jacka
 
Hallo

Ich benutzt den MS SQL Server 2000 und muss über eine Visual Basic Oberfläche nur die letzten drei TAge auslesen. Das Problem liegt auch vielleicht in der Syntax von VB wie ich deinen SQL Befehl zusammengesetzt habe. Jedenfalls wird nichts angezeigt. Hier ist mein Code:

Set RSTSchema = New ADODB.Recordset
With RSTSchema
.ActiveConnection = oConn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockBatchOptimistic
.Source = "SELECT * FROM" & " " & "Chargenmischanlage WHERE" & " " & "DATE_SUB(CURDATE(),INTERVAL 3 DAY)" & " " & "<=" & " " & "Datum_und_Uhrzeit"
.Open
End With

Siehst du einen Fehler?
 
Zurück