gpt4 book ai didi

sql - T-SQL 查询中月/年对的排序

转载 作者:行者123 更新时间:2023-12-01 12:00:15 25 4
gpt4 key购买 nike

我正在编写一个显示月份和年份的存储过程。它正在运行,但未按所需顺序返回行。

ALTER procedure [dbo].[audioblog_getarchivedates]  
as
begin
select DateName(Month,a.createddate) + ' ' + DateName(Year,a.createddate) as ArchiveDate
from audio_blog a
group by DateName(Month,a.createddate) + ' ' + DateName(Year,a.createddate)
order by DateName(Month,a.createddate) + ' ' + DateName(Year,a.createddate) desc
end

结果会是这样的:

March 2010
January 2010
February 2010

但这不是顺序 (desc)。

最佳答案

Jeff Smith 写了一篇 excellent article关于如何按年月对分组和排序的方法。我特别喜欢他将日期四舍五入到该月的第一天并按该值分组的方法:

GROUP BY dateadd(month, datediff(month, 0, SomeDate),0)

速度更快,因为它不需要字符串连接。

您可以稍后在查询中通过执行 YEARMONTH 将此值转换为年月组合,以便于用户表示。

关于sql - T-SQL 查询中月/年对的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2558440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com