I’ve been messing around with this for hours trying different ways of ordering by date. I wish there was an strtotime(field) that would do what I need.
I’ve tried messing around with UNIX_TIMESTAMP, STR_TO_DATE and I just can’t figure this out.
I’m trying to put these in order given below:
June 13, 2012, 4:45:28 pm
May 31, 2012, 10:41 am
June 12, 2012, 6:40:34 pm
June 06, 2012, 3:05:22 am
June 10, 2012, 7:59:31 pm
I’ve tried a bunch of different approaches, this is the latest one I’ve been working on…
SELECT name,lastonline FROM `users` ORDER BY STR_TO_DATE(UPPER(lastonline),
'%M %d,%Y, %H:%i:%s') DESC
It seems as though this is as close as I can get and it doesn’t take into account “AM” or “PM”. I’ve tried adding the %p on the end, but for some reason it’s as though the UPPER isn’t doing anything at all. I’ve also tried using %r.
Any ideas?
The MySQL docs say, that a construct of 12-Hour time and AM/PM should be parsed as
%rin one piece, not as%H:%i:%s %p.While I consider this to be a misfeature, it definitly works.