使用FORMAT功能时如何按月排序

问题描述 投票:0回答:1

我尝试这样做,但由于某种原因它总是打乱顺序。我尝试了 DATE_FORMAT,它说它不是可识别的内置函数名称

Select
  FORMAT(ProcessDate, 'MMM-yy') as ProcessDate,
  ProcessComment as ProcessComment
from EMPLOYEE
where ProcessDate between '23/06/2023' and '23/12/2023'
order by ProcessDate desc;
sql mysql date sql-order-by yearmonth
1个回答
0
投票

您将日期转换为不再可排序的字符串(例如,DEC 在字母表中位于 FEB 之前)。当您将该字符串命名为与原始日期相同时,DBMS 认为您想要按生成的字符串进行排序。使用与列名不同的别名并按原始日期排序。

您还应该使用正确的日期文字,而不是使用您希望 DBMS 为您正确转换为日期的字符串(例如猜测哪个位置是日期,哪个位置是月份)。

SELECT 
  FORMAT(processdate, 'MMM-yy') AS process_date,
  processcomment AS process_comment
FROM employee 
WHERE processdate BETWEEN DATE '2023-06-23' and DATE '2023-12-23' 
ORDER BY processdate DESC;
© www.soinside.com 2019 - 2024. All rights reserved.