Loading:

Mikołajkowa promocja 3za2 - w tym roku przygotuj większą skarpetę!

Obliczanie wieku na podstawie daty urodzenia w SQL

Stwórzmy najpierw tabele z datami urodzin w formacie rok-miesiąc-dzień (format z zerami z przodu) jest to standard dla SQL w bazach.

 

Listing 1.0 pokazuje jak stworzyć naszą strukturę tabeli, natomiast listing 1.1 dodaje wpisy do tej tabeli.

 

Aby obliczyć wiek każdego artysty oraz stworzyć tymczasową tabele o nazwie 'wiek' potrzeba tylko jedno polecenie SQL które można zaobserwować pod listingiem 2.0.

 

Polecenie SQL odejmuje aktualny rok od roku z pola 'urodzony' dla każdego artysty oraz odejmuje aktualny miesiąc-dzień od miesiąca-dnia artysty. Funkcja RIGHT pobiera tylko 5 ostatnich znaków z parametru czyli np 04-25 (25 dzień kwietnia) zostanie wzięty pod uwagę.

 

Wynik przypisywany jest do nowo stworzonej tabeli 'wiek', która istnieje tylko przez chwilę.



Napisz Artykuł

Listing

//listing 1.0
CREATE TABLE `artysci` (
  `artysta_id` int(10) unsigned NOT NULL auto_increment,
  `imie` varchar(20) NOT NULL default '',
  `nazwisko` varchar(20) NOT NULL default '',
  `urodzony` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`artysta_id`)
)

//listing 1.1
INSERT INTO `artysci` VALUES (1,'Rod','Stewart','1945-01-10'),(2,'Elton','John','1947-03-25'),(3,'Paul','McCartney','1942-06-18'),(4,'Mick','Jagger','1943-07-26'),(5,'Bryan','Adams','1959-11-05'),(6,'Bryan','Ferry','1945-09-26'),(7,'Phil','Collins','1951-01-30'),(8,'Roger','Daltry','1944-03-01'),(9,'Paul','Simon','1941-10-13'),(10,'Bob','Dylan','1941-05-24');

//listing 2.0
SELECT imie, nazwisko,
(YEAR(CURDATE()) - YEAR(urodzony)) - (RIGHT(CURDATE(), 5) < RIGHT(urodzony, 5)) AS wiek FROM artysci;


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=1717

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 37169
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors