Leeres Datum im SQL-Befehl

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Leeres Datum im SQL-Befehl

Beitrag von arkadiuszpaluszek »

Hallo,

ich versuche mit fiolgendem SQL-Befehl eine Abfrage zu generieren:

Code: Alles auswählen

mySQL="SELECT * FROM ""periodes_in_goodhouse"" WHERE ""from""<='"+data_end+"' AND (""until"">='"+data_begin+"' OR ""until""=NULL)"
alternativ auch so:

Code: Alles auswählen

mySQL="SELECT * FROM ""periodes_in_goodhouse"" WHERE ""from""<='"+data_end+"' AND (""until"">='"+data_begin+"' OR ""until""='')"
Es geht darum, dass alle Bewohner einer Pension rausgesucht werden sollen, welche in einem bestimmten Zeitraum da waren. Die Bewohner welche erst nach dem Anfang des angegebenen Zeitraums die Pension verlassen haben werden korrekt ausgesucht, nicht die aber welche noch da sind, weil die Angabe für ein leeres Datum wohl nicht stimmt.

Wenn =NULL und ='' nicht zum Erfolg führen, wie kann ich es noch versuchen?

In der Datenbank war das entsprechende Feld zunächst fälschlicherwerise als VARCHAR deklariert, habe es in Date verändert, ändert aber nichts am Ergebnis der Abfrage.

Gruß

Arek
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Leeres Datum im SQL-Befehl

Beitrag von DPunch »

Servus

Code: Alles auswählen

mySQL="SELECT * FROM ""periodes_in_goodhouse"" WHERE ""from""<='"+data_end+"' AND (""until"">='"+data_begin+"' OR ""until"" IS NULL)"
oder kürzer

Code: Alles auswählen

mySQL="SELECT * FROM ""periodes_in_goodhouse"" WHERE ""from""<='"+data_end+"' AND IFNULL(""until"",'9999-12-31') >='"+data_begin+"'"
NULL ist kein Wert und kann daher auch nicht mit Vergleichsoperatoren erfasst werden.
Antworten