I'm using a system where the dates are stored as strings in the format dd/mm/yyyy
. Is it possible to convert this to yyyy-mm-dd
in a SELECT query (so that I can use DATE_FORMAT
on it)? Does MySQL have a date parsing function?
Currently the only method I can think of is to concatenate a bunch of substrings, but hopefully there's a simpler solution.
(Unfortunately I can't convert the field to a true date field since it's a meta-table: the same column contains values for different fields that are just strings.)
STR_TO_DATE allows you to do this, and it has a format argument.
Yes, there's str_to_date
mysql> select str_to_date("03/02/2009","%d/%m/%Y");
+--------------------------------------+
| str_to_date("03/02/2009","%d/%m/%Y") |
+--------------------------------------+
| 2009-02-03 |
+--------------------------------------+
1 row in set (0.00 sec)
SELECT STR_TO_DATE(dateString, '%d/%m/%y') FROM yourTable...
Source: Stackoverflow.com