art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 21.02.2007, 15:33   #1
Zen
TP-Junior
 
Benutzerbild von Zen
 
Registriert seit: Jan 2007
Zen macht alles soweit korrekt

Alter ausrechnen mit SQL


Moin moin,

Ich hab in einer DB abgespeichert wann meine Mitgleider Geburtstag haben und würde daraus nun gerne das Alter ausrechnen.

Da ich auch Leute habe die vor 1970 geboren sind, nehme ich das Format Date:

2005-02-20

Jetzt will ich das alter ausrechnen. Bisher hab ichs mal so probiert:

DATEDIFF(CURDATE(),`bday`) AS bday

Das gibt mir die Anzahl der Tage aus die die Person schon lebt :mrgreen: . Ist aber doof weil ich so das Alter nicht genau bestimmen kann. Es gibt ja auch Schaltjahre. Wie kann ich das zuverlässig ausrechnen?

MfG Zen

MySQL AB :: MySQL 5.0 Reference Manual :: 12.5 Date and Time Functions
Zen ist offline   Mit Zitat antworten


Alt 21.02.2007, 18:48   #2
TP-Senior
 
Registriert seit: Feb 2006
Ort: Wien
Tropical ist auf einem guten Weg
Code:
SELECT geburtsdatum,(YEAR(CURRENT_DATE) - YEAR(Geburtsdatum)) - (DATE_FORMAT(CURRENT_DATE, '%d%m') < DATE_FORMAT(Geburtsdatum, '%d%m')) AS Alter FROM tabelle;
Du musst lediglich tabelle abändern und gegebenenfalls die Spaltennamen ausbessern.
Tropical ist offline   Mit Zitat antworten
Alt 21.02.2007, 18:52   #3
Zen
TP-Junior
 
Benutzerbild von Zen
 
Registriert seit: Jan 2007
Zen macht alles soweit korrekt
Hm okd Danke

Aber was ist mit Schaltjahren?
Zen ist offline   Mit Zitat antworten
Alt 21.02.2007, 18:56   #4
TP-Senior
 
Registriert seit: Feb 2006
Ort: Wien
Tropical ist auf einem guten Weg
Zitat:
Zitat von Zen
Hm okd Danke

Aber was ist mit Schaltjahren?
Da ich ja nicht so wie du über die Anzahl der Tage rechne, sondern MySQL direkt mit Jahren rechnen lasse, sollte da kein Problem sein.
Denke ich jetzt mal, die Abfrage ist allerdings ungetestet.
Tropical ist offline   Mit Zitat antworten
Alt 22.02.2007, 16:21   #5
Zen
TP-Junior
 
Benutzerbild von Zen
 
Registriert seit: Jan 2007
Zen macht alles soweit korrekt
Zitat:
(YEAR(CURDATE()) - YEAR(`bday`)) - (DATE_FORMAT(CURDATE(), '%d%m') < DATE_FORMAT(`bday`, '%d%m')) AS age
So sieth das jetzt bei mir aus. Kannst du noch erklären was es genau macht mit dem kleiner <
?

Danke

Edit: ok ich checks ned. Das vor dem Minus rechnet die Differenz der Jahre aus. Davon zeihst du dann [TAGZAHL][MONATSZAHL] ab??? Warum funtzt das

Geändert von Zen (22.02.2007 um 16:30 Uhr).
Zen ist offline   Mit Zitat antworten
Alt 15.04.2007, 18:09   #6
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
ok, aus aktuellem Anlass hier eine nachgereichte Erklärung

(YEAR(CURDATE()) - YEAR(`bday`))
aktuelles Jahr - Geburtsjahr

Dann hat man das Alter, aber das ist das vom Ende des Jahres, also wenn der Geburtstag im aktuellen Jahr schon war.
Hat man aber erst nach heute in diesem Jahr Geburtstag, ist man 1 Jahr jünger. Es wird hier geprüft:
(DATE_FORMAT(CURDATE(), '%d%m') < DATE_FORMAT(`bday`, '%d%m'))

Diese Abfrage liefert true(1) wenn das aktuelle Datum vor dem heutigen Datum liegt, sonst false(0). Das muss also nur abgezogen werden.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Alter ausrechnen mit SQL Alter ausrechnen mit SQL
« [php / MySQL] Text mit Regex-Ausdruck aus DB bearbeiten | [Perl] CORBA-Komponente EDS (Evolution Data Server) einbinden & verwenden »

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

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:28 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67