Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL alle heutigen Termine abfragen (https://www.delphipraxis.net/132895-sql-alle-heutigen-termine-abfragen.html)

Grolle 21. Apr 2009 17:16

Datenbank: Firebird • Version: 2.1 • Zugriff über: IBDAC

SQL alle heutigen Termine abfragen
 
Hallo,

wie bekomme ich mit einer SQL-Abfrage alle Termine heraus, die heute sind, kommen, waren? Das Feldformat in der Datenbak ist Timestamp.

Viele Grüße ...

sniper_w 21. Apr 2009 17:21

Re: SQL alle heutigen Termine abfragen
 
Abgesehen davon dass die Frage nicht eindeutig ist, versuche es damit:
SQL-Code:
SELECT * FROM Termine WHERE Datum = '21.04.2009'

shmia 21. Apr 2009 17:24

Re: SQL alle heutigen Termine abfragen
 
SQL-Code:
SELECT * FROM Tabelle WHERE zeitfeld >= :Zeit1 AND zeitfeld <:Zeit2
Der Parameter Zeit1 erhält den Wert SysUtils.Date
Parameter Zeit2 erhält den Wert SysUtils.Date + 1.0
Damit werden alle Datensätze von Heute (Uhrzeit 0:00 bis 23:59:59.9999) gefunden.

p80286 21. Apr 2009 17:26

Re: SQL alle heutigen Termine abfragen
 
Leider kenn ich Firebird nicht so genau, darum schlag ich dir folgendes vor:
SQL-Code:
select * from tabelle where datum>(Tagesdatum-1) and datum<(Tagesdatum+1)
damit solltest du alle Heutigen Termine erwischen können, egal zu welcher Uhrzeit sie sind.

Gruß
K-H

Grolle 21. Apr 2009 17:40

Re: SQL alle heutigen Termine abfragen
 
Guten Morgen :wall:
Delphi-Quellcode:
'SELECT * FROM USERSCHEDULES WHERE (STARTTIME>='''+DateToStr(currentTimestamp)+' 00:00:00'+''' AND STARTTIME<'''+DateToStr(currentTimestamp)+' 23:59:00'+''') AND... '

shmia 21. Apr 2009 17:55

Re: SQL alle heutigen Termine abfragen
 
Zitat:

Zitat von Grolle
Delphi-Quellcode:
'SELECT * FROM USERSCHEDULES WHERE (STARTTIME>='''+DateToStr(currentTimestamp)+' 00:00:00'+''' AND STARTTIME<'''+DateToStr(currentTimestamp)+' 23:59:00'+''') AND... '

Das ist aber ganz wüster Code!
Nimm doch wie von mir vorgeschlagen Parameter.
Gerade bei Datums/Zeitfelder sind doch Parameter fast schon Pflicht.
Delphi-Quellcode:
query.sql.text := 'SELECT * FROM USERSCHEDULES WHERE STARTTIME >= :Zeit1 AND STARTTIME <:Zeit2';
query.ParamValues['Zeit1'] := SysUtils.Date; // Systemdatum
query.ParamValues['Zeit2'] := SysUtils.Date+ 1.0; // Systemdatum + 1 = Morgen
query.Open;
@p80286:
Tagesdatum-1 wäre ja der 20. April 0:00 Uhr.
Die Bedingung datum>(Tagesdatum-1) wäre auch erfüllt, wenn z.B. datum=20.April 14:00Uhr wäre.
Das ist dann aber gestern, denn heute ist der 21. April.

Grolle 21. Apr 2009 18:25

Re: SQL alle heutigen Termine abfragen
 
Hi,
Zitat:

Zitat von shmia
Das ist aber ganz wüster Code!

habe ich nur schnell hingetippt. Ohne Parameter wirds wirklich unleserlich :roll:

Viele Grüße ...

mjustin 21. Apr 2009 18:59

Re: SQL alle heutigen Termine abfragen
 
Zitat:

Zitat von Grolle
Hallo,

wie bekomme ich mit einer SQL-Abfrage alle Termine heraus, die heute sind, kommen, waren? Das Feldformat in der Datenbak ist Timestamp.

Viele Grüße ...

Firebird 2.1:

SQL-Code:
select *
 from tabelle
 where cast(feldname as date) = current_date
Das Delphi-Datum würde ich nicht unbedingt verwenden. Das kann schon mal verstellt sein - auf dem SQL-Server sollte das eher seltener passieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.

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