Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datumsdifferenz mit mySQL (https://www.delphipraxis.net/35599-datumsdifferenz-mit-mysql.html)

barnti 9. Dez 2004 14:43


Datumsdifferenz mit mySQL
 
Hallo,

ich bin auf der Suche nach dem richtigen Statement(mySQL) um die Differenz zwischen zwei Tagen zu ermitteln. Dabei habe ich an folgendes gedacht:
SQL-Code:
SELECT TO_DAYS(NOW()) - TO_DAYS(MeinDatum)
FROM meineTabelle
Damit bekomme ich für jeden Eintrag die Differenz in ganzen Tagen. Um eine korrekte Abrechnung zu generieren, brauche ich aber Tage, Stunden, Minuten.

Kann mir mal jemand einen kleinen Hinweis geben?

Berserker 9. Dez 2004 16:46

Re: Datumsdifferenz mit mySQL
 
Hi Barnti.

Mit dieser Funktion kannst du den Unterschied zwischen den Datumsangaben in MySQL errechnen:

Es gibt dir Sekunden, Minuten,Stunden,Tage,Wochen aus.

SQL-Code:
SELECT
 (UNIX_TIMESTAMP( NOW() )-UNIX_TIMESTAMP('2004-12-01 12:00:00')) as 'SEKUNDEN',
 (UNIX_TIMESTAMP( NOW() )-UNIX_TIMESTAMP('2004-12-01 12:00:00'))/60 as 'MINUTEN',
 (UNIX_TIMESTAMP( NOW() )-UNIX_TIMESTAMP('2004-12-01 12:00:00'))/(60*60) as 'STUNDEN',
 (UNIX_TIMESTAMP( NOW() )-UNIX_TIMESTAMP('2004-12-01 12:00:00'))/(60*60*24) as 'TAGE',
 (UNIX_TIMESTAMP( NOW() )-UNIX_TIMESTAMP('2004-12-01 12:00:00'))/(60*60*24*7) as 'WOCHEN';
Ich hoffe das Hilft dir erstmal weiter.

MfG, Ronny

Nightshade 9. Dez 2004 17:55

Re: Datumsdifferenz mit mySQL
 
Code:
DATEDIFF(expr,expr2)
DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation. mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
        -> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
        -> -31

DATEDIFF() was added in MySQL 4.1.1.
Und nochmal zum nachlesen : Date and Time Functions

barnti 10. Dez 2004 08:42

Re: Datumsdifferenz mit mySQL
 
Hi,
Zitat:

Zitat von Nightshade
Code:
DATEDIFF(expr,expr2)
DATEDIFF() returns the number of days between the start date expr and the end date expr2. expr and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation. mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
        -> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
        -> -31

DATEDIFF() was added in MySQL 4.1.1.

Wie gesagt ich brauche das in Tagen Stunden , Minuten...

Ich denke die Lösung von Berserker wird mir weiterhelfen. Ich schaue mal.
Danke!

barnti 10. Dez 2004 08:59

Re: Datumsdifferenz mit mySQL [hat sich grad erledigt]
 
Hallo noch einmal!

Noch Folgendes: Wie kann ich von dieser Differenz noch eine gewisse Anzahl Tage(hier 20 Tage) abziehen
SQL-Code:
select UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(Ankunftdatum)-20)/(60*60*24)
FROM MeineTabelle
So scheint es nicht zu funktionieren...
Diese Datumsrechnerei mag ich gar nicht :(

[edit]
Ok,ich habe falsch geklammert...
[/edit]

Berserker 11. Dez 2004 04:49

Re: Datumsdifferenz mit mySQL
 
Hi.

Hast du es hibekommen mit der Datumsrechnerei?

MfG, Ronny


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