好的,这个问题有点误导......我知道有几种不同的方法可以从日期中获取 MMYYYY 格式,但它需要将字符串转换为 VARCHAR。虽然这一切都很好,但对结果进行排序却是一件非常痛苦的事情。

这是我正在使用的:

SELECT
CONVERT(VARCHAR(2),MONTH(TransactionDte)) + '/' + CONVERT(VARCHAR(4),YEAR(TransactionDte) AS MMYYYY
,SUM(TransactionCt) AS TransCt
,SUM(TransactionAmt) AS TransAmt
FROM Transactions
GROUP BY CONVERT(VARCHAR(2),MONTH(TransactionDte)) + '/' + CONVERT(VARCHAR(4),YEAR(TransactionDte)

结果如下:
1/2010
1/2011
10/2010
10/2011
11/2010
11/2011
12/2010
12/2011
2/2010
2/2011
3/2010
3/2011
等等...

我正在尝试按日期升序排列。正如你所看到的,他们没有......有没有办法得到我想要实现的目标?

提前致谢!

最佳答案

;WITH t AS
(
SELECT GETDATE() AS TransactionDte UNION ALL
SELECT GETDATE()+1 AS TransactionDte UNION ALL
SELECT GETDATE()+90
)
SELECT CONVERT(VARCHAR(2),MONTH(TransactionDte)) + '/' +
       CONVERT(VARCHAR(4),YEAR(TransactionDte)) AS MMYYYY,
       COUNT(*)
FROM t
GROUP BY MONTH(TransactionDte), YEAR(TransactionDte)
ORDER BY MIN(TransactionDte)

关于sql - 如何在 SQL Server 中获取 MMYYYY 格式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5253768/

10-10 04:58