Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在桌子上存储所有事件。在该表中,我有一个名为“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并使用:
YYYY-MM-DD
DD/MM/YYYY
STR_TO_DATE('01/03/2013','%d/%m/%Y')
将值转换为有效日期