SQL : Datumsbereiche ermitteln

Öfters benötigt man Daten in einem bestimmten Datumsbereich oder Intervall aus einer
Tabelle, eine solche Datenmenge lässt sich leicht über SQL-Abfragen erzeugen:

Einige Beispiele wie man dies mit SQL umsetzen kann finden Sie in diesem Beitrag. In vielen Handbüchern oder Blogs findet man leider immer nur SQL pur, aber keine Umsetzung in Delphi, was nicht immer hilfreich ist. Von daher habe ich die Beispiele gleich in der korrekten Delphi-Syntax aufgeschrieben.

(datum ist hierbei das gewünschte Date-Field in der Tabelle mytable, ist der Feldtyp DateTime kommt statt Current_date Current_Timestamp zum Einsatz)

z.B. alle Daten aus einer Tabelle mit einem Datumseintrag älter als heute:
’select * from mytable where datum<Current_date‘;

Alle Daten mit einem Datumsstempel von heute:
’select * from mytable where datum=Current_date‘;

Alle Daten mit einem Datumsstempel von morgen:
’select * from mytable where datum = current_date() + INTERVAL’+QuotedStr(‚1′)+‘ DAY‘;

Alle Daten von gestern:
’select * from mytable where datum = current_date() – INTERVAL’+QuotedStr(‚1′)+‘ DAY‘;

Alle Daten der letzten 7 Tage:
’select * from mytable where Datum >= current_date() – INTERVAL’+QuotedStr(‚7′)+‘ DAY)‘;

Daten, die in einem bestimmten Bereich liegen:
’select * from mytable where datum between Date’+QuotedStr(sdate)+‘ and Date’+QuotedStr(eDate)

*=sdate=von Datum; edate = bis Datum

Achten Sie darauf, dass das Datumsformat für den SQL-Server in der Form YYYY-MM-DD vorliegt, gegebenenfalls muss dieses entsprechend konvertiert werden.

Alle Daten dieses Jahres:
’select * from mytable where EXTRACT(Year FROM datum) = EXTRACT(Year FROM (Current_date())‘;

Alle Daten dieses Monats:
’select * from mytable where EXTRACT(Month FROM datum) = EXTRACT(Month FROM (Current_date())‘;

Alle Daten von Juli:
’select * from mytable where EXTRACT(Month FROM datum) = 7′;

Diese Beispiele sollten eine gute Basis für eigene Abfragen sein. Zu beachten ist, dass nicht immer alle SQL Server eine identische Syntax haben. Von daher sind u.U. Anpassungen notwendig.

Werbung & Infos:

Sicher im Home Office – März Angebote Antivirus & Internet Security

» Avira Prime mit 50% Rabatt (deutscher Hersteller, aber gehört Investorengruppe aus Bahrain)
» Bitdefender Antivirus, Internet Security und Total Security mit 60% Rabatt (Rumänien, EU)
» ESET Frühlingsangebot mit: 20% Rabatt auf ESET Internet Security (Made in Slowakei, EU)
Angebot bis 30. April 2022
» F-Secure Safe mit 40% Rabatt
» F-Secure Total mit 50% Rabatt (Finnland, EU) plus eventuelle Restlaufzeit eines anderen Abos angerechnet
» G Data mit 30% Rabatt aktuell (Deutschland, EU)



Verwandte Themen: