我有一个带有 VARCHAR 字段的 mysql 表,该字段以 dd/mm/yyyy
格式存储日期。该表中已经存储了数据,我需要按降序对这些数据进行排序。这可能吗?
最佳答案
处理日期的最佳方法是将 then 存储为日期数据类型。
您可以通过添加日期数据类型的列、将数据合并到其中然后重新命名,轻松地将其中的数据转换为日期列。
alter yourTable add dateColumnName date;
update yourTable set dateColumnName = STR_TO_DATE(oldDateColumn, '%m/%d/%Y');
drop column oldDateColumn;
alter table yourTable change dateColumnName oldDateColumn date;
如果这样做,您将能够进行各种复杂的日期操作(不仅限于对日期进行很好的排序,或者以不同的格式输出数据 - 还包括计算、比较等等)。您需要注意,您可能还必须更改将数据插入列的方式 - 尽管有许多简单的方法可以将字符串日期从 CSV 或表单转换为正确的日期列。
编辑:正如 Martin 指出的那样,如果您现在在其中存储了一些流浪数据,则在转换为日期时可能会出现问题,但您可以在进行更新时相当轻松地找到这些数据。 update... 查询运行后,只需运行以下命令:
select count(*) from yourTable where dateColumnName is null; // Total Problem Count
select * from yourTable where dateColumnName is null; // Detail
这将显示未更新的行
关于php - 排序由 mysql 中的日期组成的 VARCHAR 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259007/