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

时间:2013-02-27 11:22:09

标签: php date sorting

我在桌子上存放所有事件。在该表中,我有一个名为“event_date”的列。创建活动的人必须输入如下日期:d / m / Y - 例如:27/02/2013。

但是当我尝试通过event_date ASC对结果进行排序时,它并没有按照所需的顺序排列。我甚至试过用UNIX_TIMESTAMP(event_date)来命令它,但它也没有解决我的问题。

我该如何解决这个问题?

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

您必须在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')

将值转换为有效日期