Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL Datumvergleich

Empfohlene Antworten

Veröffentlicht

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

mit dem Informix ODBC Driver

den datenbank typ, kann ich leider niergendwo finden... is ne verbindung über DSN

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

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

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

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 :P

jo danke... hatte nen denkfehler... funktioniert so wie du gesagt hast goos...

Danke an euch

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.