ORDER BY
(MONTH(resource_date) - MONTH(GETDATE()) + 12) % 12,
DATEADD(year, YEAR(GETDATE()) - YEAR(resource_date), resource_date),
YEAR(resource_date)
Thuật ngữ đầu tiên đặt thứ tự chính theo tháng của resource_date
(tháng hiện tại sẽ là tháng đầu tiên, tháng trước đó, tháng cuối cùng). Thuật ngữ thứ hai đặt hàng các dấu thời gian trong vòng một tháng bất kể năm của ngày. Nếu ngày của bạn không chứa các phần thời gian hoặc nếu các phần thời gian hoàn toàn không liên quan, bạn có thể thay thế nó bằng DAY(resource_date)
. Cuối cùng, thuật ngữ cuối cùng lấy năm tính cho các ngày giống hệt nhau (cũng có thể đơn giản là resource_date
).