baseportal
Suche: 
 Forum   Start 

Datumsabfragen und -vergleiche

 
Verstecken Inhalt

Direkte Abfrage

Wenn Sie die Abfrage selbst kontrollieren, also z.B. in einem "loop"-Tag, beim "get"-Befehl oder über die URL, so können Sie direkt nach einem Datum abfragen:

Datum==1.3.2000,20:15

baseportal ist schlau genug, die verschiedenen Angaben bestmöglich zu erkennen. Hier eine Reihe von Beispielen:

Wichtig sind die Trennzeichen: Der Punkt "." (trennt Tag, Monat und Jahr, sowie Minute und Sekunde), das Komma "," (trennt Datum und Zeit) und der Doppelpunkt ":" (trennt Stunde und Minute).


Operatoren

Die Operatoren ~= und == sind bei der Datumsabfrage gleich bedeutend.

Während das <-Zeichen genauso arbeitet, wie man es sich vorstellt, hat das >-Zeichen eine auf den ersten Blick andere Wirkung: Die Abfrage...

Datum>2000

...führt nicht dazu, dass alle Einträge ab (und einschliesslich) dem Jahr 2001 ausgegeben werden, sondern alle Einträge ab der ersten Sekunde im Jahr 2000. Zum gewünschten Ergebnis führt folgende Abfrage:

Datum>=2001


Abfrage nach dem momentanen Datum

Mit dem Wert "jetzt" kann nach dem momentanen Datum abgefragt werden:

Datum>jetzt

Findet alle Einträge mit einem Datum in der Zukunft.


"Relative" Abfrage nach Vergangenheit und Zukunft

Ausgehend vom momentanen Datum können Sie nach Zeitpunkten in der Vergangenheit oder Zukunft abfragen:

Datum>-14

Findet alle Einträge die höchstens 14 Tage alt sind.

Datum<+24:00

Findet alle Einträge die maximal 24 Stunden in der Zukunft liegen.

Auch hier erkennt baseportal eine Reihe unterschiedlicher Angaben:

Wichtig sind wieder die Trennzeichen: Der Punkt "." (trennt Minute und Sekunde), das Komma "," (trennt Tag und Zeit) und der Doppelpunkt ":" (trennt Stunde und Minute).


Datum vergleichen

Um ein Datum mit einem anderen zu vergleichen, brauchen Sie Textvergleiche:

if($datum1 lt $datum2) { ... }

Ist erfüllt wenn $datum1 älter ist als $datum2. Beide Variablen müssen im internen Format vorliegen. Ist das nicht der Fall müssen Sie vorher mit datum gewandelt werden:

if(datum($datum, "intern") ge datum("jetzt", "intern")) { ... }

Ist erfüllt wenn $datum in der Zukunft liegt (grösser als "jetzt").


Abfragen nach Datumsteilen

Abfragen "in die Mitte" eines Datums sind nicht möglich, da dieses immer von "oben" her bearbeitet wird. Die Reihenfolge ist:

Jahr.Monat.Tag,Stunde:Minute.Sekunde

In einem "normalen" Datumsfeld können Sie also nicht einfach alle Einträge mit dem Monat "Juni" egal in welchem Jahr ausgeben lassen. Ein Abfrage wie...

Datum~=juni

...ist dennoch möglich - sie liefert jedoch alle Einträge mit Monat "Juni" des aktuellen Jahres.

Sie können diese Beschränkung jedoch bewusst umgehen, indem Sie eigene Formate definieren.

Letzte Änderung am 22.9.2007, 19:00 - Stichworte: Datum, Datumsabfrage, Operatoren, Datum vergleichen, Aktuelles Datum, jetzt, Abfrage nach Vergangenheit und Zukunft, Abfrage nach Datumsteilen

c - o - + 
© baseportal GmbH. Alle Rechte vorbehalten.


powered in 0.04s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!