[SQL] Waarom werkt YEAR functie niet?

Pagina: 1
Acties:
  • 289 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik heb een (MySQL) tabel genaamd 'tweets' met daarin de volgende record:

code:
1
2
3
tweet_id  query  created_at  from_user
---------------------------------------
5         AA     1298027046  timwinning

Uiteindelijk wil ik een query schrijven die alle tweets per dag, maand, jaar of weekdag teruggeeft. Daarvoor begon ik eenvoudig:
SQL:
1
SELECT YEAR(`created_at`) FROM tweets2 WHERE `tweet_id` = 5

Maar MySQL retourneert dan:
code:
1
2
YEAR(`created_at`)
NULL

Dat snap ik niet, want created_at is een valide timestamp (02 / 18 / 11 @ 5:04:06am EST). Ik verwacht dus gewoon "2011" terug te krijgen. Als ik overigens alleen de timestamp zelf ophaal:
SQL:
1
SELECT `created_at` FROM tweets2 WHERE `tweet_id` = 5

...dan krijg ik wel de timestamp terug. Wat gaat er nou fout?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Kijk nog eens welke datatype het argument van YEAR() heeft, en welk datatype die kolom heeft. ;)

{signature}


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als je even in de documentatie had gekeken ( http://dev.mysql.com/doc/...ctions.html#function_year ), dan had je gezien dat je YEAR function geen timestamp verwacht maar een date

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ja, sorry, dat is stom van mij. Ik ging er vanuit dat deze een timestamp verwachtte en heb niet verder gekeken. Doe maar op slot, mijn excuses :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Deze gaat inderdaad op slot, maar niet omdat je de oplossing nu al hebt, maar omdat je er al vaak genoeg op gewezen bent dat je wel eens wat beter kan zoeken voordat je meteen een topic opent.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Dit topic is gesloten.