Kalendarische Abfragen (Datum) |
Home Zurück Vor |
In den folgenden Übungen geht es darum, Datensätze vom Datentyp Datum (Date)zu filtern. Zum Einsatz kommen dabei folgende SQL-Operatoren:
Datumsvergleich
Suche nach Datensätzen, die genau gleich (oder ungleich) einem bestimmten Datum sind. Kontrolldatum = "23.09.2016" oder Kontrolldatum <> "23.09.2016"
Suche nach Datensätzen, die vor/bis (oder nach/ab) einem bestimmten Datum entsprechen. Kontrolldatum > "23.09.2016" oder Kontrolldatum < "23.09.2016" Hinweis: Mit diesen Ausdrücken werden keine Datensätze einschließlich des Datums 23.09.2016 ausgewählt. Falls diese ebenfalls gewünscht sind, verwenden Sie die Operatoren >= oder <=.
Suche nach Datensätzen, die einer vorgegebenen Zeitspanne vor dem aktuellen Datum entsprechen. Kontrolldatum <= CurDate() -7 Hinweis: Mit diesem Ausdruck werden Datensätze ausgewählt, deren Datum 7 Tage vor dem aktuellen Datum entsprechen.
In den folgenden Beispielen wird die „Year“-Funktion verwendet, um ein Jahr im Datum zu spezifizieren/extrahieren.
Suche nach Datensätze aus dem Jahr 2016. Year(Datum) = 2016
Suche nach Datensätzen aus den Jahren 2014 und 2015. Year(Datum) = any(2014,2015)
Suche nach Datensätzen zwischen 2012 und 2016, einschließlich der Jahre 2012 und 2016. Year(Datum) >= 2012 and Year(Datum) <= 2016
Vergleichbare Suchabfragen können auch über die Kriterien "Monat" (Month) und/oder "Tag" (Day) formuliert werden. Hinweis: Wenn die Datenbank Datensätze aus unterschiedlichen/mehreren Jahren enthält, in der Syntax aber kein bestimmtes Jahr angegeben wird, wird im Ergebnis auch kein bestimmtes Jahr berücksichtigt.
In den folgenden Beispielen wird die „Month“-Funktion verwendet, um einen Monat im Datum zu spezifizieren/extrahieren.
Suche nach Datensätzen, die einen bestimmten Zeitpunkt entsprechen (in diesem Beispiel "August"). (Hinweis: In diesem Beispiel würden alle Datensätze aus dem Monat August ausgewählt; unabhängig von der Jahreszahl). Month(Kontrolldatum) = 8
Suche nach Datensätzen, die einem Zeitpunkt vor dem aktuellen Datum entsprechen (in diesem Beispiel "August"). (Hinweis: In diesem Beispiel würden alle Datensätze von Januar bis Juli ausgewählt; unabhängig von der Jahreszahl). Month(Kontrolldatum) < 8
Für spezifische Suchanfragen ist es erforderlich, verschiedene SQL-Ausdrücke mit Hilfe von Operatoren zu verknüpfen.
Suche nach Datensätzen, die einen bestimmten Zeitpunkt entsprechen (in diesem Beispiel "August" UND "2016"). Folgendes Beispiel besteht aus zwei Klauseln: Die erste Klausel sucht alle Datensätze mit dem Merkmal Monat „August“. Die zweite Klausel sucht alle Datensätze mit dem Merkmal Jahr „2016“. Da die Klauseln durch den Operator and verbunden sind, müssen beide erfüllt sein, damit eine Zeile ausgewählt wird. Month(Kontrolldatum) = 8 and Year(Kontrolldatum) = 2016
Suche nach Datensätzen, die einen bestimmten Zeitpunkt entsprechen (in diesem Beispiel "August" UND "September"). Folgendes Beispiel besteht aus zwei Klauseln: Die erste Klausel sucht alle Datensätze mit dem Merkmal Monat „August“. Die zweite Klausel sucht alle Datensätze mit dem Merkmal Monat „September“. Da beide Klauseln durch and miteinander verbunden sind, müssen beide Klauseln erfüllt sein, damit entsprechende Datensätze ausgewählt werden. Month(Kontrolldatum) = 8 or Month(Kontrolldatum) = 9
Dieser Ausdruck führt zu demselben Ergebnis wie im Beispiel zuvor, wird jedoch unter Verwendung des Schlüsselworts any formuliert. Suche nach Datensätzen, die einen bestimmten Zeitpunkt entsprechen (in diesem Beispiel "August" UND "September"). Month(Kontrolldatum) = any (8,9)
Suche nach Datensätzen, die einen bestimmten Zeitpunkt entsprechen (in diesem Beispiel "August" UND "September" UND "2016"). Dieser Ausdruck besteht daher aus zwei Klauseln. Die erste Klausel wählt alle Zeilen aus, in denen der Monat „August“ oder "September" lautet. Die zweite Klausel wählt alle Zeilen aus, in denen das Jahr „2016“ lautet. Da die Klauseln durch den Operator and verbunden sind, müssen beide erfüllt sein, damit eine Zeile ausgewählt wird. Month(Kontrolldatum) = any(8,9) and Year(Kontrolldatum) = 2016
In den folgenden Beispielen wird die „Day“-Funktion verwendet, um einen Tag im Datum zu spezifizieren/extrahieren.
Suche nach Datensätzen, die einen bestimmten Zeitpunkt entsprechen (in diesem Beispiel der erste Tag eines Monats). Day(Kontrolldatum) = 1
In den folgenden Beispielen wird die „Weekday“-Funktion verwendet, um einen Wochentag im Datum zu spezifizieren/extrahieren.
Suche nach Datensätzen, , in denen der Wochentag einem Mittwoch. Weekday(Kontrolldatum) = 4
Suche nach Datensätzen, in denen der Wochentag einem Mittwoch, Donnerstag oder Freitag entspricht. Weekday(Kontrolldatum) = any(4,5,6) Das Schlüsselwort any weist MapInfo Pro an, alle Zeilen auszuwählen, in denen der Wochentag einem der genannten Tage entspricht.
Suche nach Datensätzen, in denen der Wochentag einem Freitag und der Monat Juli entspricht. Dieser Ausdruck besteht aus zwei Klauseln. Die erste Klausel verwendet die Funktion „Weekday“, um Datensätze auszuwählen, in denen der Wochentag einem Freitag entspricht. Die zweite Klausel verwendet die Funktion „Month“, um Datensätze auszuwählen, in denen der Monat Juli entspricht. Da beide Klauseln durch and miteinander verbunden sind, müssen beide Klauseln erfüllt sein, damit entsprechende Datensätze ausgewählt wird. Weekday(Kontrolldatum) = 6 and Month(Kontrolldatum) = 7
Suche nach Datensätzen, in denen der Wochentag einem Freitag, aber das Datum nicht dem Dreizehnten entspricht: Dieser Ausdruck besteht aus zwei Klauseln. Die erste Klausel verwendet die Funktion „Weekday“, um Datensätze auszuwählen, in denen der Wochentag einem Freitag entspricht. Die zweite Klausel verwendet die Funktion „Day“, um Datensätze auszuwählen, in denen das Datum nicht dem 13. entspricht (<>). Da beide Klauseln durch and miteinander verbunden sind, müssen beide Klauseln erfüllt sein, damit entsprechende Datensätze ausgewählt werden. Weekday(Datum)=6 and Day(Datum)<>13
|