bstylez Geschrieben 8. Dezember 2006 Geschrieben 8. Dezember 2006 Hallo Ich habe folgendes Probelm: Ich habe eine Tabelle (nennen wir sie mal b) Sie beinhaltet Datumwerte wie z.B. 2006-12-07 12:33:27 2006-11-09 13:14:24 Nun will ich in meiner abfrage alle einträge mit dem Datum vom vortag. Habe das ganze gelöst in dem ich folgenden WHERE Clause benutz habe: WHERE substring(b.datum from 1 for 10) = '2006-12-07' Doch durch den Substring dauert die Abfrage sehr lange... Nun Wollte ich mal fragen ob ich den WHERE Clause nich auch irgendwie so formulieren kann: WHERE b.datum like '2006-12-07%' Doch ich bekomme bei WinSQL immer nur die Meldung: Wildcard matching may not be used with non-character types. (State:S1000, Native Code: FFFFFF25) Kann mir jemand helfen, wie ich den Clause so formuliere kann , so dass das ganze schneller geht als mit SUBSTRING? Mfg Max
Goos Geschrieben 8. Dezember 2006 Geschrieben 8. Dezember 2006 Hallo Ich habe folgendes Probelm: Du hast nicht angegeben auf welchem Datenbanksystem du arbeitest. Goos
bstylez Geschrieben 8. Dezember 2006 Autor Geschrieben 8. Dezember 2006 mit dem Informix ODBC Driver den datenbank typ, kann ich leider niergendwo finden... is ne verbindung über DSN
Goos Geschrieben 8. Dezember 2006 Geschrieben 8. Dezember 2006 Ok, Informix is nicht meine Welt, aber prinzipiell solltest bei einem Datum nicht auf einen String vergleichen wenn sichs vermeiden laesst. Solltest eher auf Datum vergleichen,also where datum >= 2006-11-07 00:00:00 and datum < 2006-11-08 00:00:00 Goos
bstylez Geschrieben 8. Dezember 2006 Autor Geschrieben 8. Dezember 2006 ja wenns so einfach wäre *g* sorry hät ich glaub vorhin erwähnen sollen *g* Die SQL Abfrage wird von einem VB Programm ausgeführt, wo das Datum dann eine Variable ist *g* also ich führe sozusagen das programm jeden morgen aus um zu sehen was gestern passiert ist
Goos Geschrieben 8. Dezember 2006 Geschrieben 8. Dezember 2006 Na gerade dann is das doch ueberhaupt kein Problem. Du kannst doch im VB beim erzeugen deines SQL Strings die Datumsvariablen entsprechend in den String setzen. Goos
geloescht_JesterDay Geschrieben 8. Dezember 2006 Geschrieben 8. Dezember 2006 Nun will ich in meiner abfrage alle einträge mit dem Datum vom vortag. SELECT * From b WHERE datum = CURRENT_DATE()-1 Wobei CURRENT_DATE vielleicht durch eine Funktion deines DBMS ersetzt werden muss. EDIT: Kein DBMS speichert ein Datum tatsächlich als String! Du könntest für ein beliebiges Datum (1.Jan 2006 z.B.)auch SELECT * From b WHERE datum = '2006-01-01' nehmen. Egal ob das ein Datetime-Feld ist. EDIT2: OT Deine Sig: Wenn für Amokläufe Killerspiele verantwortlich gemacht werden, mach ich Pornos für Vergewaltigungen verantwortlich! Das tun manche ja auch (u.A.), nicht nur du
bstylez Geschrieben 8. Dezember 2006 Autor Geschrieben 8. Dezember 2006 jo danke... hatte nen denkfehler... funktioniert so wie du gesagt hast goos... Danke an euch
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden