mysql - 当 select 语句中给出格式 'dd-MM-YYYY' 未按预期工作时按日期排序

标签 mysql sql database mariadb

我将日期存储在数据库的 DATETIME 字段中。当我创建一个 select 语句时,我需要以 '%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;

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

最佳答案

如果您对列日期和格式化日期使用相同的名称,那么别名列的工作顺序 .. 按照您的格式按日、月、年排序 ('%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;

关于mysql - 当 select 语句中给出格式 'dd-MM-YYYY' 未按预期工作时按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56672476/

相关文章:

mysql - 使用 dateformat 在 mysql 中按日期搜索

c# - 在读者循环内更新到 mysql 时遇到问题

C# 使用命名实例连接到 SQL 服务器?

基于字母代码的 PHP/SQL ID

c# - (包装器托管到 native )Realms.NativeTable.get_string 中的 Realm 查询出错

c# - 从内存中加载数据库文件

mySQL 和 C 的麻烦

Mysql 在尝试创建函数时不断出错

sql - 语法错误 : missing expression (ORA-00936)

java - 如何在没有任何索引的情况下在 Elasticsearch 中存储一些位?