0

你能帮我硬编码到 CalendarMonth 排序下面的 T-SQL SELECT 语句中,这样当有人查询它出来的数据时,它是一月、二月而不是四月、八月。我已经为 FinancialMonth 行做了这个,但在 CalendarMonth 上遇到了困难。

BEGIN 

INSERT INTO Time3(Date,CalendarYear,CalendarMonth,FinancialYear,FinancialMonth)

SELECT 
@StartDate Date,YEAR(@StartDate) AS CalendarYear,
DATENAME(MONTH,@StartDate) AS CalendarMonth, 
YEAR(Dateadd(MONTH,-3,@StartDate)) AS FinancialYear,
'Period ' + RIGHT('0' + CAST(MONTH(Dateadd(MONTH, -3,@StartDate)) AS VARCHAR(2)),2) AS FinancialMonth
SET @StartDate = DATEADD(dd,1,@StartDate)

END
4

2 回答 2

2

尝试这个:

ORDER BY MONTH(@StartDate)

MONTH 是返回一个整数的函数,该整数表示指定日期的月份。 http://msdn.microsoft.com/ru-ru/library/ms187813.aspx

于 2013-02-08T10:53:53.647 回答
0

只需在查询中添加一个额外的列,如下所示,只需将 @Month 替换为您的变量:

CASE @Month
  WHEN 'January' THEN 1
  WHEN 'February' THEN 2
  WHEN 'March' THEN 3
  WHEN 'April' THEN 4
  WHEN 'May' THEN 5
  WHEN 'June' THEN 6
  WHEN 'July' THEN 7
  WHEN 'August' THEN 8
  WHEN 'September' THEN 9
  WHEN 'October' THEN 10
  WHEN 'November' THEN 11
  WHEN 'December' THEN 12
END as MonthOrder

然后在您的 ORDER BY 子句中,按此列排序

于 2013-02-08T10:32:46.100 回答