按事件日期排序事件 - 如何?
问题描述:
我已经在桌面上存储了所有事件。在该表中,我有一个名为“event_date”的列。创建事件的人必须键入如下所示的日期:d/m/Y - 例如:27/02/2013。按事件日期排序事件 - 如何?
但是当我尝试通过EVENT_DATE ASC对结果进行排序,它不想要的顺序排列出来。我甚至尝试用UNIX_TIMESTAMP(event_date)命令它,但它也不能解决我的问题。
我该如何解决这个问题?
有一个解决方案;当一个人创建一个事件时,我可以将其转换为时间戳。但是现在不能正确分类吗?
在此先感谢。
答
你将不得不您的日期,如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')
的值转换为有效日期
什么数据类型是你的“event_date”列? – Raad 2013-02-27 11:23:45
虽然你可以在排序前的日期把时间转换,你会好得多的日期存储类型日期或时间戳的数据库字段,并使用数据库'为了by'做排序为您服务。 – 2013-02-27 11:24:13
@Raad类型是VARCHAR() – hskrijelj 2013-02-27 11:26:59