![]() |
Datenbank: MYSQL • Version: 4 • Zugriff über: ODBC
Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Hallo. Gibt es so eine Abfrage mit den man folgendes erreichen kann:
Jeden Tag werden buchungssätze gebucht. Nun möchte ich sehen welche Datensätze wurden (TÄGLICH) in Zeit von 14:00 bis 16:00 gebucht. in einen Feld werden bei mir Datum+Zeit gespeichert. Wie kann ich das realisieren? |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Hai Karstadt,
möchtest Du alle Buchungen sehen die in diesem Zeitraum gemacht wurden oder nur die eines bestimmten Tages? |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
z.B. ich will von 12.12.05 bis 31.12.05 alle Buchungssätze mir anschauen, die in Zeit von 10:00 bis 12:00 gemacht wurden.
12.12.05 10-14 ... 25.12.05 10-14 ... 31.12.05 10-14 :?: |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Der SQL-Befehl könnte dann so aussehen:
SQL-Code:
Jetzt müsstest Du nur noch die Werte für Jahr, Monat, Tag_von und Tag_bis (über Parameter) füllen.
SELECT * FROM tabelle
WHERE (YEAR(buchung) = :jahr) AND (MONTH(buchung) = :monat) AND (Day(buchung) BETWEEN :tag_von AND :tag_bis) AND (HOUR(buchung) BETWEEN 14 AND 15) Das Feld buchung ist das Datumsfeld. |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Vorsicht Sharky, mit deiner Abfrage kriegst Du aber nicht die Buchungen in einem Zeitraum der über ein Monatsende hinaus geht, z.B. vom 20.12.2005 bis 10.01.2006
Ich würd mal bei MySQL in der Online hilfe nachschauen. Es gibt etliche Datumsfunktionen, und eine die sicherlich nütlzlich ist, wär eine die aus einem datetime Feld (17.01.2006 10:12:44) nur das Datum extrahiert (20060117)... |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Zitat:
damit hast Du natürlich recht. Darum ja auch meine Frage nach dem zu berücksichtigenden Zeitraum. Anhand des Beispieles von Karstadt bin ich davon ausgegangen das immer nur Buchungen innerhalb eines Monats abgefragt werden. Wenn man bei mySQL nur den Datumsteil eindes DateTime-Feldes haben möcht einfach mit DATE(feldname) arbeiten. Das wäre dann für diesen Fall:
SQL-Code:
SELECT * FROM tabelle
WHERE (DATE(buchung) BETWEEN DATE(:start_datum) AND DATE(:end_datum)) AND (HOUR(buchung) BETWEEN 14 AND 15) |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
:thumb:
Ich liebe es wenn ein Plan funktioniert :-) Damit mein ich, dass ich immer wieder die Leute bewundere die all die Funktionen im Kopf haben. |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Die Abfrage kann eine Indizes verwenden, ist also bei großen Tabellen grottenlangsam...
In diesem Fall wäre es sicherlich ratsam schon in der Tabelle Datum und Unhrzeit getrennt zu speichern. |
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
Wie würde das aussehen bei 14:10 bis 15:20 (es sind minuten hinzu gekommen)
|
Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
wie würde das eigentlich mit minuten aussehen?
12:15 14:13? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz