Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen? (https://www.delphipraxis.net/61107-eine-sql-abfrage-jeden-tag-bestimmte-zeit-anzeigen.html)

Karstadt 17. Jan 2006 07:13

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?

Sharky 17. Jan 2006 07:32

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?

Karstadt 17. Jan 2006 07:50

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

:?:

Sharky 17. Jan 2006 07:55

Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
 
Der SQL-Befehl könnte dann so aussehen:
SQL-Code:
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)
Jetzt müsstest Du nur noch die Werte für Jahr, Monat, Tag_von und Tag_bis (über Parameter) füllen.
Das Feld buchung ist das Datumsfeld.

Jelly 17. Jan 2006 08:13

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)...

Sharky 17. Jan 2006 08:47

Re: Eine SQL Abfrage (Jeden Tag bestimmte Zeit) anzeigen?
 
Zitat:

Zitat von Jelly
...in einem Zeitraum der über ein Monatsende hinaus geht, ...

Hai Jelly,

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)

Jelly 17. Jan 2006 11:23

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.

alzaimar 17. Jan 2006 11:53

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.

Karstadt 17. Jan 2006 20:09

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)

Karstadt 18. Jan 2006 11:12

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 11:10 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz