gpt4 book ai didi

MySQL order by date 奇怪的问题

转载 作者:行者123 更新时间:2023-12-01 00:13:25 24 4
gpt4 key购买 nike

我一直致力于更新现有网站。因为有一个条目表单将保存在表中...表结构和示例数据如下

id  |  name       | type    |  in_date     |  year   
-----------------------------------------------------
1 | name1 | 1 | 2-July | 2011
2 | name2 | 2 | 2-June | 2011
3 | name44 | 2 | 8-Sep | 2011

现在我需要按整个日期对这个表进行排序,即(如 2011 年 6 月 2 日)作为一个简单的查询

SELECT * FROM order_list order by date DESC

这个 Action 有什么办法吗?我尝试了很多查询....以任何方式组合这两行..

我们不能更改数据库,因为它包含更多现有记录..

最佳答案

您应该将日期存储为 MySQL DATE类型,而不是字符串:

ALTER TABLE order_list ADD COLUMN new_date DATE;

UPDATE order_list
SET new_date = STR_TO_DATE(CONCAT(in_date, '-', year), '%e-%b-%Y');

ALTER TABLE order_list DROP COLUMN in_date, DROP COLUMN year;

然后排序变得微不足道(即,将完全按照您尝试的那样工作):

SELECT * FROM order_list ORDER BY date DESC;

如果您无法更改数据库架构,您可以执行 STR_TO_DATE ORDER BY 子句中的操作(但这不是很有效):

SELECT   *
FROM order_list
ORDER BY STR_TO_DATE(CONCAT(in_date, '-', year), '%e-%b-%Y') DESC

关于MySQL order by date 奇怪的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com