SQL 按格式为 dd.MM.yyyy 的日期时间排序不正确

SQL order by datetime formatted as dd.MM.yyyy is incorrect

我在按正确顺序排序数据时遇到问题。 我尝试了几种不同的组合,但它们都以错误的方式 return 数据。 日期列采用 datetime 格式。 我试过的一些代码:

SELECT CONVERT(VARCHAR(10), recievedDate, 104) as day
FROM table
GROUP BY CONVERT(VARCHAR(10), recievedDate, 104)
ORDER BY CONVERT(VARCHAR(10), recievedDate, 104)

Returns 数据为:

01.02.2021
01.03.2021
01.04.2021
02.02.2021
02.03.2021
...

我试过:

SELECT FORMAT(CONVERT(DATETIME, CONVERT(VARCHAR(10), recievedDate, 121)),'dd.MM.yyyy')
FROM table
GROUP BY FORMAT(CONVERT(DATETIME, CONVERT(VARCHAR(10), recievedDate, 121)),'dd.MM.yyyy')
ORDER BY FORMAT(CONVERT(DATETIME, CONVERT(VARCHAR(10), recievedDate, 121)),'dd.MM.yyyy')

其中 return 结果相同。

但我想要的是:

01.01.2021
02.01.2021
03.01.2021
01.02.2021

等等。我真的不知道为什么它把所有的月份都分组然后按天排序。

通过转换为 datedatetime 进行分组,并在 分组后格式化日期

SELECT CONVERT(VARCHAR(10), CONVERT(date, recievedDate), 104)
FROM t
GROUP BY CONVERT(date, recievedDate)
ORDER BY CONVERT(date, recievedDate)