Eine SQL-Anfrage, die Werte zwischen 2 Zeitpunkten ausgibt

sharmuur

Mitglied
Hallo,

ich habe eine Tabelle mit dem Schema:

Code:
jahr monat tag uhrzeit parameter ort wert

wobei, jahr, monat, tag, uhrzeit, parameter, ort zusammengesetzer Schlüßel von der Tabelle ist. Ich wollte eine SQL-Anfrage formulieren, die die Werte zwischen 2 Zeitpunkten ausgibt. Z.B. alle Werte zwischen 08.07.2000 und 01.12.2009. Ich habe verschiedene Varianten überlegt, aber es klappt nicht. Hat jemand vielleicht eine Idee, wie man das machen könnte?

danke voraus
sharmuur
 
Warum hast du das nicht gleich als Zeitstempel gespeichert.
Also muss das Datum im SQL aus verscheidenen Feldern zusammengesetz werden.

Doch das ist je nach DBMS verschieden.

Darum 2 Gegenfragen:

1) Was für eine DBMS? (Oracle, MySQL, Access,...)
2) Die Definition der spalten? (String (also mit führenden 0), Nummer etc)

Nachtrag:
Ein Beispiel für MySQL und der Annahme das die Felder als Zahlen gespeichert sind
SQL:
SELECT *
FROM table
WHERE 
	STR_TO_DATE(CONCAT(tag, '.', monat, '.', jahr), '%e.%c.%Y') BETWEEN STR_TO_DATE('08.07.2000', '$d.$m.$Y') AND STR_TO_DATE('01.12.2009', '$d.$m.$Y')

STR_TO_DATE(): http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html#id542480
CONCAT(): http://dev.mysql.com/doc/refman/5.1/de/string-functions.html#id524396
Formatierungs-Übersetzung: http://dev.mysql.com/doc/refman/5.1/de/date-and-time-functions.html#id538208
 
Zuletzt bearbeitet von einem Moderator:
danke für die Antwort.
mit dem Zeitstempel weiß ich nicht so genau, da ich für eine schon vorhande Datenbank ein PHP-Skript schreibe. Jahr, monat , tag, uhrzeit (nur stunden) sind als Spalten gespeichert.

Code:
jahr smallint, monat smallint, tag smallint, uhrzeit smallint, ort varchar(50), parameter varchar(50), wert double

datenbank: mySQL
 
Zuletzt bearbeitet:
Zurück