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 Zitieren
Goos Geschrieben 8. Dezember 2006 Geschrieben 8. Dezember 2006 Hallo Ich habe folgendes Probelm: Du hast nicht angegeben auf welchem Datenbanksystem du arbeitest. Goos Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.