Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Systemzeit in SQL - Abfrage nutzen (https://www.delphipraxis.net/99821-systemzeit-sql-abfrage-nutzen.html)

HolgerCW 18. Sep 2007 11:51

Datenbank: ORACLE • Version: 9 • Zugriff über: BDE

Systemzeit in SQL - Abfrage nutzen
 
Hallo zusammen,

wie kann man die Systemzeit in einer SQL - Abfrage benutzen ?

Delphi-Quellcode:
WHERE ((TERMIN = SYSDATE AND UHRZEIT < (SYSTIME - 1)) OR (TERMIN < SYSDATE))
Möchte alle Datensätze filtern, die älter als eine Stunde sind, oder älter als ein Tag. So wie oben klappt es aber nicht.

Gruss

Holger

mkinzler 18. Sep 2007 11:58

Re: Systemzeit in SQL - Abfrage nutzen
 
CURRENT_DATE CURRENT_TIME

HolgerCW 18. Sep 2007 12:07

Re: Systemzeit in SQL - Abfrage nutzen
 
Zitat:

Zitat von mkinzler
CURRENT_DATE CURRENT_TIME

-> Kommt die Meldung: ungültiger Bezeichner

Gruss

Holger

angos 18. Sep 2007 12:09

Re: Systemzeit in SQL - Abfrage nutzen
 
hi,

wie sieht jetzt genau der source aus? welche fehlermeldungen genau?

Gruß

HolgerCW 18. Sep 2007 12:15

Re: Systemzeit in SQL - Abfrage nutzen
 
Soe sieht der SQL-Code aus:

Delphi-Quellcode:
WHERE ((TERMIN = SYSDATE AND UHRZEIT < (CURRENT_TIME - 1)) OR (TERMIN < SYSDATE))
... dann kommt die Meldung CURRENT_TIME -> ungültiger Bezeichner

Gruss

Holger

ken_jones 18. Sep 2007 12:18

Re: Systemzeit in SQL - Abfrage nutzen
 
Sind nicht alle Records die älter als ein Tag sind automatisch älter als 1h? Da könntest du dir doch eine Abfrage sparen? Oder ist das Zeitfeld nicht überall gefüllt? Egal, hier ein Beispiel wie du mit dem Datum rechnen kannst:

SQL-Code:
select sysdate as "aktuell", sysdate-1 as "gestern", sysdate - 1/86400 as "vor einer Sekunde", sysdate - 1/1440 as "vor einer Minute", sysdate - 1/24 as "vor einer Stunde" from dual
Gruss

angos 18. Sep 2007 12:22

Re: Systemzeit in SQL - Abfrage nutzen
 
wer lesen kann ist klar im vorteil -.- es geht um oracle, sorry hab ich nicht aufgepasst.

bei deiner ersten code-version ...
Delphi-Quellcode:
WHERE ((TERMIN = SYSDATE AND UHRZEIT < (SYSTIME - 1)) OR (TERMIN < SYSDATE))
... kam wahrscheinlich kein fehler sondern nur nicht die gewünschte datenmenge?

Das Problem ist, dass Oracle imho bei "1" genau einen Tag abzieht und nicht wie von dir gewollt eine Stunde ;) Also musst du hier mit 1/24 arbeiten.

Delphi-Quellcode:
WHERE ((TERMIN = SYSDATE AND UHRZEIT < (SYSTIME - 1/24)) OR (TERMIN < SYSDATE))


[edit] @ken_jones: Er möchte scheinbar alle Datensätze die älter als eine stunde sind, aber auch welche die nicht von Heute sind ;)
[Edit 2] RS Fehler raus

HolgerCW 18. Sep 2007 12:55

Re: Systemzeit in SQL - Abfrage nutzen
 
Vielen dank für die Tipps.

Habe das mal so umgesetzt:
Delphi-Quellcode:
(SELECT SYSDATE - 1/24 FROM dual) as TEST
TEST beinhaltet ja jetzt das Datum und die Uhrzeit (welche um eine Stunde reduziert ist). Wie kann ich jetzt aus TEST nun nach der Uhrzeit abfragen ?

Gruss

Holger

P.S.:

Hierbei:
WHERE ((TERMIN = SYSDATE AND UHRZEIT < (SYSTIME - 1/24)) OR (TERMIN < SYSDATE))
kam die Fehlermeldung: Ungültige Zahl

ken_jones 18. Sep 2007 13:46

Re: Systemzeit in SQL - Abfrage nutzen
 
Gib doch eine kurze Info um was für Feldtypen es sich bei den 2 Feldern handelt, und was GENAU drinsteht, wenn es keine DATE Felder sind.

HolgerCW 18. Sep 2007 14:09

Re: Systemzeit in SQL - Abfrage nutzen
 
Hallo,

UHRZEIT ist ein VARCHAR2(5) - Feld und TERMIN ist ein DATE - Feld

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 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