SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.01.2011, 12:36:13
bonanza10 bonanza10 ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 43
Beiträge: 16
Tage seit letztem Geburtstag ermitteln

Wie der Titel schon sagt, will ich wausfinden, wie lange (in Tagen) der Geburtstag eines Users zurückliegt.
Mein query sieht so aus, funktioniert leider nicht mehr durch das neue Jahr
Code:
SELECT customers_dob, DAYOFYEAR(customers_dob)-DAYOFYEAR(NOW()) as diff FROM customers
Mit Zitat antworten
  #2  
Alt 05.01.2011, 12:53:39
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Tage seit letztem Geburtstag ermitteln

Probiert mal...

Code:
SELECT TIMESTAMPDIFF(DAY, '2010-12-31',CURRENT_DATE) AS diff_days, current_date ;
+-----------+--------------+
| diff_days | current_date |
+-----------+--------------+
|         5 | 2011-01-05   |
+-----------+--------------+
1 row in set (0.00 sec)

mysql>
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #3  
Alt 05.01.2011, 12:58:43
bonanza10 bonanza10 ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 43
Beiträge: 16
AW: Tage seit letztem Geburtstag ermitteln

Wir haben noch mysql 4
Mit Zitat antworten
  #4  
Alt 05.01.2011, 14:40:37
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Tage seit letztem Geburtstag ermitteln

Na dann vielleicht so...

ca. Berechnung der Differenz (geht nur zwischen 01.01.1970 und 2037(?))
Code:
SELECT (unix_timestamp(CURRENT_DATE) - unix_timestamp('2010-12-31')) / (24*60*60) AS ca_diff_days;
+--------------+
| ca_diff_days |
+--------------+
|       5.0000 |
+--------------+
1 row in set (0.00 sec)
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #5  
Alt 05.01.2011, 14:44:53
bonanza10 bonanza10 ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 43
Beiträge: 16
AW: Tage seit letztem Geburtstag ermitteln

Danke für den Tipp, allerdings sind manche User vor 1970 gebohren. Das ist ziemlich kniffelig, da durch den Jahreswechsel nicht mit dem letzten Jahr sondern mit dem jetzigen Jahr gerechnet wird.

Was ich wissen muss ist, ob der User in den letzten 60 Tagen Geburtstag hatte. Ich bieg mir bald ein Knoten ins Hirn.
Mit Zitat antworten
  #6  
Alt 05.01.2011, 15:10:30
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Tage seit letztem Geburtstag ermitteln

oder so...

a) Die Berechnung in PHP machen..

b) Notlösung: Bei denen die vor 1970 geboren sind, einfach für die Berechnung das Jahr 1970 einsetzen.

z.B. Fritz 11.11.1940 => 11.11.1970

Code:
SELECT (unix_timestamp(CURRENT_DATE) - unix_timestamp('1970-11-11')) / (24*60*60) AS ca_diff
Dies ergibt einen Fehler bei denen, die am Schalttag 29.02.xxxx Geburtstag haben. Sonst sollte es stimmen meine ich. Einfach mal testen.

Vielleicht reicht das aus für Deinen Zweck.

c) Update auf MySQL 5.x , wäre sowieso sinnvoll..


Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #7  
Alt 05.01.2011, 15:23:52
bonanza10 bonanza10 ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 43
Beiträge: 16
AW: Tage seit letztem Geburtstag ermitteln

Danke, aber damit bekomme ich die Zeitspanne zwischen den 2 Datumswerten, die brauch ich nicht, ich muss wissen ob er in den letzten 60 Tagen Geburtstag hatte.

Im Prinzip müsste ich den Monat und den Tag aus seinem Geburtstag nehmen und prüfen ob dieses Datum (ohne Jahr) innerhalb von heute und heute-60 liegt. Keine Ahnung wie ich das in ner SQL formulieren soll.

Mit PHP wäre auch o.k.

Ich denke aber nicht, dass es geht, da ich ohne Jahr arbeite und es somit mind. 2 Möglichkeiten gibt (dieses Jahr und letztes Jahr)
Mit Zitat antworten
  #8  
Alt 05.01.2011, 16:26:38
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: Tage seit letztem Geburtstag ermitteln

Zitat:
Zitat von bonanza10 Beitrag anzeigen
Im Prinzip müsste ich den Monat und den Tag aus seinem Geburtstag nehmen und prüfen ob dieses Datum (ohne Jahr) innerhalb von heute und heute-60 liegt. Keine Ahnung wie ich das in ner SQL formulieren soll.
Das ist leider nur die "halbe Miete". Das Problem ist das Schaltjahr. Ich überlege schon seit einer Weile, komme aber auf keine schnelle Lösung. Die meisten Beispiele die ich finde, berücksichtigen das Schaltjahr nicht richtig.

Das Problem nehme ich mal als Hausaufgabe mit... (die "SQL-Lösung" kann aber etwas dauern).

Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Mit Zitat antworten
  #9  
Alt 05.01.2011, 16:35:25
bonanza10 bonanza10 ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 43
Beiträge: 16
AW: Tage seit letztem Geburtstag ermitteln

Ja das mit dem Schaltjahr hab ich auch noch im Kopf, was ich bis jetzt habe ist das:
Code:
SELECT customers_dob FROM customers WHERE ( DAYOFYEAR('1980-1-1 00:00:00') BETWEEN DAYOFYEAR(CURDATE()) AND DAYOFYEAR(CURDATE())-60) AND
bringt mir leider keine Ausgabe
Mit Zitat antworten
  #10  
Alt 05.01.2011, 17:50:36
knight1 knight1 ist offline
Junior Member
 
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
knight1 eine Nachricht über MSN schicken knight1 eine Nachricht über Skype™ schicken
AW: Tage seit letztem Geburtstag ermitteln

Hi,
wie wäre es mit dieser Idee
Code:
SELECT DATEDIFF(DATUM1,DATUM2) AS `differenz`
MySQL rechnet DATUM1 - DATUM2 mit der Anzahl Tage als Differenz-Wert im Ergebnis.

Und dann in PHP
PHP-Code:
if ($result['differenz'] <= 59)
{
irgendwelcher PHP-Code
}
elseif (
$result['differenz'] == 60)
{
anderer PHP-Code
}
elseif (
$result['differenz'] >= 61)
{
noch anderer PHP-Code

Hier die Dokumentation:
http://dev.mysql.com/doc/refman/4.1/...ction_datediff (MySQL 4.1; Englisch)
http://dev.mysql.com/doc/refman/5.1/...functions.html (MySQL 5.1; Deutsch; Muss etwas scrollen)



Kai aka Knight1
__________________
Please visit: http://www.kaikordel.de
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Noch X Tage und X Monate bis zu Bogi PHP Grundlagen 1 13.01.2007 02:52:06
Mindesthaltbarkeitsdatum Tage angeben juniorin_A MySQLi/PDO/(MySQL) 19 31.12.2006 02:39:18
Anzahl Tage berechnen chris47803 PHP Grundlagen 30 12.09.2005 08:49:14
monatsstatistik anzahl tage Stifler PHP Grundlagen 6 31.05.2005 04:14:01
Datumsangaben ermitteln hohm PHP für Fortgeschrittene und Experten 4 19.02.2005 16:07:25


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:01:11 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt