使用STR_TO_DATE发出SQL查询问题

时间:2014-08-08 16:31:21

标签: mysql sql sorting

我在尝试使用带有STR_TO_DATE的sql查询时遇到问题。我有一个表,其中所有字段都声明为VARCHAR,我无法更改此数据库。我仍然想使用upload_date列对结果进行排序,该列在数据库中显示为VARCHAR

当我使用此查询时:

select currency,STR_TO_DATE( upload_date, '%d-%m-%Y' ) AS date_for_sort 
from currency_list ORDER BY date_for_sort DESC

上面的查询运行顺利,没有任何错误,但问题是它并没有真正按照我的需要对结果进行排序,即使将其更改为ASC也没有带来我得到的结果的任何变化,它是总是一样。

表格如下:

CREATE TABLE IF NOT EXISTS `currency_list` (
  `currency` varchar(255) NOT NULL,
  `code` varchar(255) NOT NULL,
  `rate` varchar(255) NOT NULL,
  `local` varchar(255) NOT NULL,
  `upload_date` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

表中的示例数据:

U.K. Pound              GBP  1.7106    0.58459      01-07-2014
U.K. Pound              GBP  1.688500  0.592242     01-06-2014
European Currency Unit  EUR  1.3867    0.721136511  01-04-2014

感谢您的帮助。

0 个答案:

没有答案