MySQL Unix time-stamp search

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een CMS met een tabel feusers_properties daarin staat een time-stamp 344473200
Ik zou graag een query uitvoeren met een selectie waarin ik iedereen weergeef die vandaag jarig is.

Ik heb dit geprobeerd maar helaas werkt dit niet.


SELECT FROM_UNIXTIME(data,'%d-%m')
FROM cms_module_feusers_properties
WHERE data LIKE '01-12';

Ik weet nu niet hoe ik kan zoeken omdat elke datum is uitgerust met een jaartal

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh. je doet een LIKE op een timestamp? En dan ook nog zonder wildcard :?

Ik zou eens kijken naar (bijv.) BETWEEN. Dan krijg je iets als:
SQL:
1
2
...
WHERE `data` between UNIX_TIMESTAMP('2010-12-01') and UNIX_TIMESTAMP('2010-12-02');


edit:
Voor verjaardagen is de query overigens iets anders; dat stukje had ik even gemist.

Het is overigens altijd aan te raden gegevens op te slaan in het juiste datatype; in dit geval is een timestamp verkeerd; je had een datetime moeten gebruiken. Dan had je ook datetime functies kunnen gebruiken en met DAY() en MONTH() kunnen werken. Maar daar kun je wel omheen werken met een FROM_UNIXTIME:
SQL:
1
2
...
WHERE Month(FROM_UNIXTIME(`data`))=12 and Day(FROM_UNIXTIME(`data`))=1

[ Voor 129% gewijzigd door RobIII op 01-12-2010 13:41 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt FROM_UNIXTIME werkt perfect!
Ik kan de timestamp niet aanpassen omdat het binnen een module zit die werkt binnen een opensource CMS