也许有人可以帮我解决我在MS SQL Server上的SELECT语句。我对(T)SQL不是很熟练。
我有一个名为RECORDS的表,并且有一个名为[BEGIN]的DATETIME列。现在我想得到一些看起来像这样的“nvarchars”“08年12月8日,09年1月9日”..
我自己想出了以下内容。
SELECT DISTINCT DATENAME(MONTH, [BEGIN]) + ' ' + SUBSTRING(DATENAME(YEAR, [BEGIN]),3,4)
FROM RECORDS
然而,这是未排序的,我希望从头到尾排序结果集。
February 09
January 09
December 08
任何?
答案 0 :(得分:1)
SELECT DATENAME(MONTH, DATEADD(month, b_month - 1, 0)) + ' ' + SUBSTRING(CAST(b_year AS VARCHAR), 3, 4)
FROM (
SELECT DISTINCT YEAR([BEGIN]) AS b_year, MONTH([BEGIN]) AS b_month
FROM RECORDS
) q
ORDER BY
b_year, b_month
答案 1 :(得分:1)
怎么样
with tbldate AS
(
select distinct DATENAME(MONTH, date) + ' ' + SUBSTRING(DATENAME(YEAR, date),3,4) as date
from dbo.tbldate
)
select * from tbldate
order by date desc
答案 2 :(得分:1)
select datename(month, yyyymm)
+ ' '
+ right(convert(varchar(10), yyyymm), 2)
from
(
select dateadd(month, datediff(month, 0, [BEGIN]), 0) as yyyymm
from yourtable
group by dateadd(month, datediff(month, 0, [BEGIN]), 0)
) a
order by yyyymm desc
答案 3 :(得分:0)
添加ORDER BY [BEGIN] DESC
答案 4 :(得分:0)
SELECT DISTINCT DATENAME(MONTH, [BEGIN]) + ' ' + SUBSTRING(DATENAME(YEAR, [BEGIN]),3,4) FROM RECORDS
ORDER BY 1 DESC