/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
datofelt til fødselsdag/måned
Fra : Martin


Dato : 18-12-07 14:56

Hejsa..

Jeg sidder med et birthdate felt af typen DATE, udfra dette vil jeg
gerne have år gammel - dette får jeg ved
SELECT
(YEAR(CURDATE())-YEAR(birthdate))-(RIGHT(CURDATE(),5)<RIGHT(birthdate,5))
AS age
FROM table

Men nu er jeg kommet ind i et lille problem - nu skal hvis ovenstående
giver 0 så skal den hente hvor mange måneder gammel
Jeg har prøvet med en IF og en CASE, men intet er lykkedes.

SELECT

IF(
(YEAR(CURDATE())-YEAR(birthdate))-(RIGHT(CURDATE(),5)<RIGHT(birthdate,5))<1)
,(YEAR(CURDATE())-YEAR(birthdate))-(RIGHT(CURDATE(),5)<RIGHT(birthdate,5))<1)
,MONTH(birthdate)
) AS age
ENDIF

FROM table


SELECT

(YEAR(CURDATE())-YEAR(birthdate))-(RIGHT(CURDATE(),5)<RIGHT(birthdate,5))
AS age,
CASE age<1 THEN BIRTH(month) AS age END

FROM table


MySQL 5.0.27

 
 
Martin (18-12-2007)
Kommentar
Fra : Martin


Dato : 18-12-07 15:07

Martin wrote:
> Hejsa..
>
> Jeg sidder med et birthdate felt af typen DATE, udfra dette vil jeg
> gerne have år gammel - dette får jeg ved
> SELECT
> (YEAR(CURDATE())-YEAR(birthdate))-(RIGHT(CURDATE(),5)<RIGHT(birthdate,5))
> AS age
> FROM table
>
> Men nu er jeg kommet ind i et lille problem - nu skal hvis ovenstående
> giver 0 så skal den hente hvor mange måneder gammel
> Jeg har prøvet med en IF og en CASE, men intet er lykkedes.

Så fik jeg det til at virke :)

SELECT

(YEAR(CURDATE())-YEAR(birthdate))-(RIGHT(CURDATE(),5)<RIGHT(birthdate,5))
AS age,
IF(
age<1
,MONTH(birthdate)
,age
) AS age

Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408043
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste