Keskustelut - Tietokannat - tämänhetkinen ikä sql oracle


tikanmaa 08:22 19.1.10 
Miten kyselyissä saa selvitettyä reaaliaikaisen iän eli miten vanha joku henkilö on juuri nyt ?


weicco 08:35 19.1.10 
Vähentämällä nykyisestä ajasta henkilön syntymäajan.
Runoltaja 10:18 19.1.10 
Joo näin mäkin sen tekisin.
root 10:44 19.1.10 
editoitu: 14:49 19.1.10
kek 14:49 19.1.10 

SQL
SELECT (SYSDATE-to_date('19.01.1980','dd.MM.yyyy'))/365 AS Ika_vuosina FROM dual;
 
weicco 15:10 19.1.10 
Myslin dokkareita tarjoat Oracleen? Aika villiä!
kek 15:14 19.1.10 
Tämmöinen löytyi myös pienellä googlettelulla:


SQL
SELECT
    TO_NUMBER(SUBSTR(A,1,4)) - 2000 vuotta,
    TO_NUMBER(SUBSTR(A,5,2)) - 01 kuukautta,
    TO_NUMBER(SUBSTR(A,7,2)) - 01 päivää
FROM (
        SELECT TO_CHAR((TO_DATE('20000101','YYYYMMDD') + (SYSDATE-to_date('19791218','YYYYMMDD'))),'YYYYMMDD') A
        FROM DUAL);
 
editoitu: 08:46 20.1.10
root 08:42 20.1.10 
Kappas, olikin joku nuhanen Oracle kyseessä. Ehkä pitäisi lukea otsikot kahdesti.
editoitu: 00:06 22.1.10
Grez 00:02 22.1.10 
Mielestäni tuo 365:llä jakaminen on hieno, koska 30-vuotissynttäreitäkin pääsee viettämään jo keskimäärin viikon etuajassa.

Itselle tulisi mieleen jotain tällaista (jos käyttäjän syntymäaika olisi taulun Person kentässä Birthdate)


SQL
SELECT
    YEAR(SYSDATE)-YEAR(Birthdate)-IIF(
        (MONTH(SYSDATE)*32+DAY(SYSDATE))>=(MONTH(Birthdate)*32+DAY(Birthdate)),
        0, 1)
        AS AgeInYears
FROM
    Person