按事件日期排序事件 - 如何?

问题描述:

我已经在桌面上存储了所有事件。在该表中,我有一个名为“event_date”的列。创建事件的人必须键入如下所示的日期:d/m/Y - 例如:27/02/2013。按事件日期排序事件 - 如何?

但是当我尝试通过EVENT_DATE ASC对结果进行排序,它不想要的顺序排列出来。我甚至尝试用UNIX_TIMESTAMP(event_date)命令它,但它也不能解决我的问题。

我该如何解决这个问题?

有一个解决方案;当一个人创建一个事件时,我可以将其转换为时间戳。但是现在不能正确分类吗?

在此先感谢。

+0

什么数据类型是你的“event_date”列? – Raad 2013-02-27 11:23:45

+0

虽然你可以在排序前的日期把时间转换,你会好得多的日期存储类型日期或时间戳的数据库字段,并使用数据库'为了by'做排序为您服务。 – 2013-02-27 11:24:13

+0

@Raad类型是VARCHAR() – hskrijelj 2013-02-27 11:26:59

你将不得不您的日期,如YYYY/MM/DD存储在您的VARCHAR列正确有一个字母的排序工作。
正因为如此,系统会进行排序:

27/02/2013 
01/03/2013 
06/03/2013 

这样的:

01/03/2013 
06/03/2013 
27/02/2013 

如果您可以将您的栏更改为DATE数据类型,您可以您的输入格式切换为YYYY-MM-DD或继续接受DD/MM/YYYY及用途:

STR_TO_DATE('01/03/2013','%d/%m/%Y') 

的值转换为有效日期