[sql + php] Jaartal uit date halen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een database waarin een geboortedatum opgeslagen staat als date (YYY-MM-DD)

Nu wil ik (het liefste) met sql alleen het jaartal eruit halen.

Ik vind overal wel dat je met YEAR(date) een jaar uit een datum kan halen alleen dat werkt tot nu toe alleen met de huidige datum

Database aanpassen zodat de datum die erin staat een timestamp wordt is geen optie.

Is dit wel te doen met mysql of is er een php manier voor?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op dinsdag 17 juni 2008 @ 09:11:
Database aanpassen zodat de datum die erin staat een timestamp wordt is geen optie.
Ik neem aan dat het er nu als een string in staat? > gewoon string functies gebruiken om de eerste 4 chars eraf te knippen.

Toch raad ik je aan tzt dit veld om te zetten naar een echt datum veld, dat bespaard je een hoop elende ;)

Acties:
  • 0 Henk 'm!

  • foske
  • Registratie: Juli 2001
  • Laatst online: 08:20
de syntax is: YEAR(<naam van de kolom>), dan zou het wel moeten werken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
type is date, dan wordt het toch niet gewoon opgeslagen als een string of wel?

en als ik SELECT YEAR (naamkolom) FROM tabel doe werkt het niet

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op dinsdag 17 juni 2008 @ 09:16:
type is date, dan wordt het toch niet gewoon opgeslagen als een string of wel?
Als het een date is, dan wordt het ook als date opgeslagen ;) Natuurlijk kan je hem als string uitlezen, maar dat is wat anders ;)
en als ik SELECT YEAR (naamkolom) FROM tabel doe werkt het niet
Krijg je een foutmelding?

Acties:
  • 0 Henk 'm!

  • foske
  • Registratie: Juli 2001
  • Laatst online: 08:20
Wat voor soort foutmelding krijg je erbij?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
geen foutmelding, kheb het gewoon in een php pagina


$gegevens=mysql_query("SELECT YEAR(gebdatum) FROM leden");

while($lid = mysql_fetch_array($gegevens)){
echo ("Geboortejaar: ".$lid[gebdatum]."<br>");
}

nu verschijnt er dus alleen een lijst met Geboortejaar: heel vaak onder elkaar

Edit: als ik de query in phpmyadmin draai werkt het wel? dus de fout zit niet in de query Iemand een idee wat ik nou fout die?

[ Voor 17% gewijzigd door Verwijderd op 17-06-2008 09:23 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op dinsdag 17 juni 2008 @ 09:21:
geen foutmelding, kheb het gewoon in een php pagina


$gegevens=mysql_query("SELECT YEAR(gebdatum) FROM leden");

while($lid = mysql_fetch_array($gegevens)){
echo ("Geboortejaar: ".$lid[gebdatum]."<br>");
}

nu verschijnt er dus alleen een lijst met Geboortejaar: heel vaak onder elkaar
Let even op hoe je kolom heet wat je terug krijgt ;)

PHP:
1
2
3
4
5
$gegevens=mysql_query("SELECT YEAR(gebdatum) AS gebdatum FROM leden") or trigger_error(mysql_error());

while($lid = mysql_fetch_array($gegevens)){
    echo ("Geboortejaar: ".$lid["gebdatum"]."<br>");
}


Dit zou wel moeten werken. (meteen ook even een "error check" toegevoegd :)

Acties:
  • 0 Henk 'm!

Verwijderd

en als je EXTRACT(YEAR FROM gebdatum) FROM leden doet ?

Acties:
  • 0 Henk 'm!

  • Zamalan
  • Registratie: September 2007
  • Laatst online: 26-02-2015

Zamalan

Whine Connaisseur

Hier werk ik met oracle en year doet hij ook niet (YEAR invalid identifier).
Misschien iets gebruiken in de trant van:
SELECT to_char(gebdatum, 'YYYY') FROM leden

[ Voor 8% gewijzigd door Zamalan op 17-06-2008 09:26 ]

MSI GX660 --- i5 460M /// 4GB DDR3 /// Mobility Radeon HD5870 /// 1920x1080 /// 500GB


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Erkens schreef op dinsdag 17 juni 2008 @ 09:23:
[...]

Let even op hoe je kolom heet wat je terug krijgt ;)

PHP:
1
2
3
4
5
$gegevens=mysql_query("SELECT YEAR(gebdatum) AS gebdatum FROM leden") or trigger_error(mysql_error());

while($lid = mysql_fetch_array($gegevens)){
    echo ("Geboortejaar: ".$lid["gebdatum"]."<br>");
}


Dit zou wel moeten werken. (meteen ook even een "error check" toegevoegd :)
Thanks :*) zo werkt het perfect
Pagina: 1