269 Tipps rss | 6 Nutzer online

MySQL als Rechenmaschine: SELECT ohne Tabellen nutzen

Im Gegensatz zu manche anderen Datenbanken kann MySQL auch SELECT-Kommandos verarbeiten, die keine Referenz auf Tabellen enthalten, also auch nicht mit Datenbank-Informationen in Beziehung stehen.

So können Sie das DB-System beispielsweise als Taschenrechner-Ersatz verwenden und bekommen auf folgende Abfrage die Antwort "2" zurückgeliefert.

SELECT 1+1;

Diese nette Eigenschaft wird so richtig praktisch, wenn spezielle Funktionen zum Einsatz kommen, wie etwa zur Manipulation von Datumswerten. Eine typische Frage, die ansonsten schwer zu beantworten ist: Welches Datum haben wir in 100 Tagen? MySQL gibt die Antwort ohne Probleme aus:

SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 100 DAY);

Als Wert hinter INTERVAL lässt sich fast jede Zeiteinheit verwenden. Wer also wissen will, welcher Zeitpunkt 1000 Stunden vor dem nächsten Sylvester liegt, gibt ein:

DATE_ADD('2006-01-01 00:00:00', INTERVAL -1000 HOUR);

Als Format fürs Datum verwenden Sie am besten die hier gezeigte amerikanische Variante, da man so keine Konversionen durchführen lassen muss. Ob als Antwort nur der Tag oder ein Timestamp-Wert inklusive der Uhrzeit zurückgemeldet wird, hängt von der Genauigkeit des Bezugswertes und der Genauigkeit des Intervalls ab. Sobald einer der beiden Daten einen Stundenbezug enthält, liefert MySQL die Antwort inklusive Uhrzeit zurück.

Eine der anderen praktischen Datumsfunktionen von MySQL ermittelt die Kalenderwoche eines Datums. Die KW des heutigen Tages erfahren Sie beispielsweise mit

SELECT 1+WEEK('2005-01-03',1);

Da für die Funktion WEEK() die Zählung der Wochen mit 0 beginnt, wird zum Ergebnis eins dazugezählt. Der zweite Parameter nach dem Datum sorgt dafür, dass der Montag als erster Tag der Wochen angesehen wird. Wird er weggelassen, verwendet MySQL die amerikanische Datumsarithmetik, bei der die Woche mit dem Sonntag beginnt.

Die besonderen Funktionen von MySQL lassen sich entweder interaktiv, also wirklich als Ersatz für einen Taschenrechner oder durchaus auch von einer Programmiersprache aus verwenden. Wenn etwa ein Skript eine Datumsmanipulation durchführen muss und auch für andere Zwecke ständig mit einer MySQL-Datenbank redet, kann sie diese Berechnungen durchaus an die Datenbank delegieren.

Add to Del.icio.us


Bedingungen für die Kommentareingabe
Hinweis



Ihr Kommentar:


Name:


Copyright © Der Strassenprogrammierer 1999-2012   | Tippscout 5.0
Zurück Tipps Startseite