Deine Leidenschaft ist die Unterwasserfoto-grafie?
Dann ist Qozido genau das Richtige für Dich!
Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!
www.qozido.de
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
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden
17.06.2004, 20:53:31
Anfänger
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
PHP/MySQL aus Datum Altersdurchschnitt
Hi,
ich hab eine Datenbank mit Geburtsdaten im Format 01.01.1980
Das Alter daraus berechne ich mit folgendem Script
PHP-Code:
$birthdate = $row [ geb ];
$parth = explode ( "." , $birthdate );
$seconds = mktime ( 0 , 0 , 0 , $parth [ 1 ], $parth [ 0 ], $parth [ 2 ]);
$seconds = time ()- $seconds ;
$age = date ( "Y" , $seconds )- 1970 ;
So nun möchte ich das Durchschnittsalter von ALLEN einträgen in der Tabelle haben...
Habt ihr eine Idee?
17.06.2004, 23:19:18
Junior Member
Registriert seit: May 2003
Ort: CH Zürich
Beiträge: 352
Als Erstes würde ich die Geburtsdaten nicht so speichern! Das von Dir verwendete Format ist nicht Normgerecht.
Geeignet wäre das Format "date", somit wird das Datum zu: 1980-01-01
Damit müsste sich der Durchschnitt einfach berechnen lassen, Stichwort: avg (average).
Nebenbei, egal wieviel Arbeit damit verbunden ist, ich würde in jedem Fall das Datum in eine normgerechte Form bringen, das nacht sich immer bezahlt.
18.06.2004, 08:13:31
Anfänger
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Danke Jürg.
Ich werde dann das Format ändern in YYYY-MM-DD, kann ich mir ja kurz ein Script basteln mit STR_TO_DATE()
Wie bekomm ich aber auf dem Datumsformat ein Durchschnittliches Alter?!?
18.06.2004, 10:02:26
Member
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Du mußt das Datum in einen Unix-Timestamp konvertieren. Damit kann man sehr gut rechnen.
18.06.2004, 10:28:41
Anfänger
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Also nicht in YYYY-MM-DD sondern in ein Timestamp... hmmm... ich versuch es mal
18.06.2004, 19:37:28
Anfänger
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Ich möchte gerne per Script alle Datumsformate von DD-MM-YYYY in ein Timestamp umwandeln, sprich ich will die Daten in der Tabelle updaten... habt ihr eine Idee, wie ich das am einfachst hinbekomme?
Ich wollte es über strtotime versuchen, aber das scheint nicht zu klappen. (
http://www.selfphp.info/funktionsref.../strtotime.php )
Könnt ihr mir weiterhelfen?
18.06.2004, 20:05:14
Anfänger
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
Okay, meine Tabelle basiert nun auf nem Timestamp
18.06.2004, 20:40:03
Anfänger
Registriert seit: Jun 2004
Ort: Bremen
Beiträge: 122
hab es nun wie folgt gelöst:
PHP-Code:
<?
$abfrage = "SELECT AVG(geb) AS alt FROM spie" ;
$result = mysql_query ( $abfrage );
while ( $row = mysql_fetch_assoc ( $result )) {
$seconds = time ()- $row [ alt ];
$age = date ( "Y" , $seconds )- 1970 ;
?>
Durchschnittsalter: <? echo $age ; ?> Jahre
Kann mir das einer vielleicht Bestätigen???
22.06.2004, 12:11:59
Junior Member
Registriert seit: Jun 2003
Beiträge: 194
Hier die Formatänderung von 01.01.1980 (VARCHAR) in 1980-01-01 (DATE):
Code:
ALTER TABLE tabelle CHANGE geb geb_alt VARCHAR(255);
ALTER TABLE tabelle ADD geb DATE AFTER geb_alt;
UPDATE tabelle SET geb =
CONCAT(SUBSTRING(geb_alt, 7, 4), "-",
SUBSTRING(geb_alt, 4, 2), "-",
SUBSTRING(geb_alt, 1, 2));
ALTER TABLE tabelle DROP geb_alt;
Da TIMESTAMP Sekunden zählt, auf 32-Bit-Systemen nach 2^32 Sekunden aber Schluß ist, würde ich das für das Alter/Geburtsdatum nicht empfehlen.
Aus der korrekten DATE-Spalte bekommst Du das Durchschnittsalter dann so:
Code:
SELECT AVG((TO_DAYS(CURRENT_DATE())-TO_DAYS(geb))/365.25) FROM tabelle
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Themen-Optionen
Ansicht
Linear-Darstellung
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.
HTML-Code ist aus .
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:38:23 Uhr.