* Ben Ramsey 
> My hosting company uses MySQL 3.23.58, and I'm running PHP-Nuke 6.9 (if 
> you're not familiar with it; it's at http://www.phpnuke.org/).
> 
> At any rate, the problem I'm having is that PHP-Nuke uses a field to 
> store a "signed-up" date for each user, but, for some reason, it's just 
> a text field and not a datetime field.  Then, in a members list view, 
> you're able to sort by the signed-up date.  However, it's sorting them 
> in alphabetical order rather than date order (So, a date with "Dec 08 
> 2003" is listed before "Jan 22 2004," which is listed before "Sep 18 
> 2002").  It just doesn't make any sense to a user viewing it.
> 
> Rather than modify the database, though, I would like to use in my SQL 
> statement something like the STR_TO_DATE() function so that I can just 
> go ahead and do "SELECT STR_TO_DATE(registered_date, '%b %d, %Y') AS 
> real_date FROM nuke_users ORDER BY real_date ASC;"
> 
> The problem is that my version of MySQL doesn't support this function. 
> It's introduced in version 4.1.1.  So, is there another way of achieving 
> this same result through a SQL statement in 3.23.58?

Yes, it can be done using the FIELD() function:

SELECT * FROM tablename 
  ORDER BY 
    MID(datecol,8),         # year
    FIELD(LEFT(datecol,3),  # month
      'Jan','Feb','Mar','Apr','May','Jun',
      'Jul','Aug','Sep','Oct','Nov','Dec'),
    MID(datecol,5,2);       # day

<URL: http://www.mysql.com/doc/en/String_functions.html#IDX1185 >

-- 
Roger


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to