我在尝试使用带有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
感谢您的帮助。