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:

Datumswerte in Ausdrücken (kalendarische Abfragen)

Operator

Beschreibung

Anmerkungen

"    "

Doppelte Anführungszeichen

Wenn Sie ein bestimmtes Datum in einen Ausdruck eingeben, muss es in doppelte Anführungszeichen gesetzt werden, damit MapInfo Pro dieses auch als Datum behandelt, und nicht als Spaltennamen oder Zahl.

Datumsangaben bestehen aus  einem Tag, einem Monat und einem Jahr.

Es weist folgendes Format auf: TT.MM.JJJJ (TagTag.MonatMonat,JahrJahrJahrJahr)

(Im Datumsfenster von MapInfo Pro werden zweistellige Eingaben in vierstellige Jahreszahlen umgewandelt. Hier können Sie zudem die Standardeinstellung Ihren Daten entsprechend ändern. Standardmäßig ist das Datumsfenster ausgeblendet.)

"01.04.2016" (korrekt)

01.04.2016 (falsch)

=

gleich


<>

ungleich


>

größer als


<

kleiner als


>=

größer als oder gleich


<=

kleiner als oder gleich


 

Funktion

Beschreibung

Anmerkungen

CurDate()

CurDate

Diese Funktion gibt den Datumswert des aktuellen Datums zurück.

Year(Datumsfeld)

Year

Gibt das Jahr des Datums zurück.

Month(Datumsfeld)

Month

Gibt den Monat des Datum zurück. Der Monat wird als Ganzzahl zwischen eins (1) und zwölf (12) dargestellt.

Day(Datumsfeld)

Day

Gibt den (numerischen) Tag des Datums zurück. Der Tag wird als Ganzzahl zwischen eins (1) und einunddreißig (31) dargestellt.

Weekday(Datumsfeld)

Weekday

Gibt den Tag der Woche des Datums zurück.

Der Tag wird als Zahl zwischen 1 und 7 angegeben.

1 entspricht Sonntag

7 entspricht Samstag.

GetDate(Datums-/Uhrzeitfeld)

CurDate

Extrahiert und gibt die spezifischen Werte für den Datentyp Datum/Uhrzeit (Date/Time) wieder.

GetTime(Datums-/Uhrzeitfeld)

CurTime

Extrahiert und gibt die spezifischen Werte für den Datentyp Datum/Uhrzeit (Date/Time) wieder.

 

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_Datum_gleich_ungleich_1

 

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_Datuml_größerkleiner_1

 

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.

Suche_nach_Datuml_größerkleiner_2

 

 

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_Datum_Jahr_gleich_ungleich_1

 

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_Datum_Monat_gleich_ungleich_1

 

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_Datum_Jahr_Monat_gleich_ungleich_1

 

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

Suche_nach_Datum_Tag_gleich_ungleich_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_Datum_Wochentag_gleich_ungleich_1

 

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