Loading:


    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;




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors