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ę.
Listing
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;
Ranga: Administrator serwisu Punktów: 0