mysql - 当 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;
但是数据不会按日期排序。我该如何解决这个问题?
解决方案
如果您对列日期和格式化日期使用相同的名称,那么别名列的按工作顺序.. 按您的格式('%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;
推荐阅读
- javascript - 使用 DOM 操作无法捕捉虚拟键盘的特殊键
- linux - BBB CAN TX 仅在环路情况下工作
- jquery - 如何在文档准备好时自动按下打印屏幕按钮?实际上没有任何用户按下按钮
- javascript - HTML,JavaScript。如何在同一个弹窗按钮上显示不同的信息
- android - 无法在 KVM 机器中启动 Android AVD
- .net - 添加迁移初始化
- r - 在 R 中运行求和时合并两个 data.tables
- python - Pandas - 根据 COL2 中的唯一值更改 COL1 中的多个值,其中 COL1 中的值满足条件
- flutter - Flutter 在 LMS 系统中带视频考勤背后的逻辑是什么?
- r - 使用 dplyr 在 R 中的条件累积和。当前日期之前的所有日期