首页 > 解决方案 > 当 select 语句中给出格式“dd-MM-YYYY”时按日期排序未按预期工作

问题描述

我将日期存储在DATETIME数据库中的一个字段中。当我创建一个选择语句时,我需要用格式显示它,'%d-%m-%Y'但我在按日期排序数据时遇到问题。

这是我的选择声明:

SELECT
DATE_FORMAT(Date,'%d-%m-%Y') AS Date
FROM Purchase
WHERE Date BETWEEN '2019-02-01' AND '2019-06-30' ORDER BY Date asc;

但是数据不会按日期排序。我该如何解决这个问题?

标签: mysqlsqldatabasemariadb

解决方案


如果您对列日期和格式化日期使用相同的名称,那么别名列的按工作顺序.. 按您的格式('%d-%m-%Y')按日、月、年排序

然后尝试更改别名

SELECT DATE_FORMAT(Date,'%d-%m-%Y') AS My_Date
FROM Purchase
WHERE Date BETWEEN '2019-02-01' AND '2019-06-30' 
ORDER BY Date asc;

或按格式使用正确的顺序

SELECT DATE_FORMAT(Date,'%d-%m-%Y')Date
FROM Purchase
WHERE Date BETWEEN '2019-02-01' AND '2019-06-30' 
ORDER BY DATE_FORMAT(Date,'%Y-%m-%d') asc;

推荐阅读