如何按事件排序事件


Sorting events by event how?

我有一个表,我存储所有的事件。在这个表中,我有一个名为"event_date"的列。创建事件的人必须像这样输入日期:d/m/Y -例如:27/02/2013。

但是当我尝试按event_date ASC对结果进行排序时,它并没有按期望的顺序出现。我甚至试过用UNIX_TIMESTAMP(event_date)排序,但它也不能解决我的问题。

我该如何解决这个问题?

有一个解;当一个人创建一个事件时,我可以将其转换为时间戳。但是,难道不可能像现在这样正确地排序吗?

您必须在VARCHAR列中将日期存储为YYYY/MM/DD,才能使字母数字排序正常工作。
这样,系统将排序:

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')

将值转换为有效的日期