Zum Inhalt springen

mysql date-problem


smordi

Empfohlene Beiträge

Hallo liebe Leute!

Folgendes Problem:

Diese Tabelle ist gegeben:

nr. | datum | tage online

1 2005-01-01 30

2 2005-02-01 30

3 2005-03-01 40

nr. = auto_increment

datum = date

tage online = int

Angenommen, wir hätten heute den 31.03.2005, möchte ich folgende

Ergebnisse haben:

nr. | x tage zu lang online

1 60

2 29

... welches der Berechnung

--> aktuelles Datum - (Datum + Tage online)

entspricht.

Ich bitte Euch herzlichst darum, mir den passenden Query dafür zu schreiben.

Wenn möglich, dann BITTE den GENAUEN Query, denn die Zeit ist sehr knapp.

Meine Version ist 4.0.23. Leider bietet mein Provider nur diese alte Version an.

Vielen Dank !

Link zu diesem Kommentar
Auf anderen Seiten teilen

... welches der Berechnung

--> aktuelles Datum - (Datum + Tage online)

entspricht.



select Nr, TO_DAYS(CURRENT_DATE) - (TO_DAYS(Datum) + Tage Online) zu_Lang 

from Tabelle 


Ist ungetestet...

TO_DAYS(date)

Given a date date, returns a daynumber (the number of days since year 0).

mysql> SELECT TO_DAYS(950501);

-> 728779

mysql> SELECT TO_DAYS('1997-10-07');

-> 729669

TO_DAYS() is not intended for use with values that precede the advent of the Gregorian calendar (1582), because it does not take into account the days that were lost when the calendar was changed.

Remember that MySQL converts two-digit year values in dates to four-digit form using the rules in Section 11.3, “Date and Time Typesâ€. For example, '1997-10-07' and '97-10-07' are seen as identical dates:

mysql> SELECT TO_DAYS('1997-10-07'), TO_DAYS('97-10-07');

-> 729669, 729669

For other dates before 1582, results from this function are undefined.

http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html

Bei der MySQL-Dokumentation werden sie immer geholfen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Felder sind datum und online...


SELECT *,DAYOFYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(ADDDATE(datum, INTERVAL online DAY))))	

FROM datum

Zum Testen kannst Du auch NOW() durch '2005-03-31' ersetzen...

Edit: Nimm das Statement meines Vorposters, wenn's funktioniert, meins ist zu umständlich ;)

Und meins funktioniert nur innerhalb eines Jahres...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...