2017-04-04 189 views
0

我試圖將當前年份以YYYY的形式與月份列中的monthy合併。T-SQL:從月份列中合併當前年份和月份

monthy  monthsname 
------------------------ 
1   January 
2   February 
3   March 
4   April 
5   May 
6   June 
7   July 
8   August 
9   September 
10   October 
11   November 
12   December 

這是我得到的輸出:

monthy monthsname month_number 
------------------------------------ 
    5   May   NULL 
    6   June   NULL 
    8   August   NULL 
    9   September  NULL 
10   October  NULL 
11   November  NULL 
    1   January  201701 
    2   February  201702 
    3   March   201703 
    4   April   201704 
    7   July   201707 
12   December  201712 

相反MONTH_NUMBER是空的,我試圖做到這一點:

isnull(ss.month_number, cast(convert(varchar(4), DATEPART(year, getdate())) as int) + right('0-- ' + cast(convert(varchar(2), monthy) as int), 2)) 

,我沒有得到正確的輸出:我想要201705month_number的第一行記錄

回答

1

根據您的數據類型是什麼,您可能需要進行此操作,但它只是年* 100加上月份數以獲取您嘗試創建的數字的整數表示形式。

ISNULL(month_number,YEAR(GETDATE())*100+monthy) 
+0

感謝安東尼,正是我需要的!!!!你搖滾! – user396123

+0

@ user396123我會爲你高興,但只有你可以接受答案 –

0

你可以試試這個:

SELECT 
    CONVERT(VARCHAR(4),DATEPART(YEAR, GETDATE())) + --year 
    ( 
     REPLICATE('0', 2 - LEN(CONVERT(VARCHAR(2), monthy))) + 
     CONVERT(VARCHAR(2), monthy) --monthy 
    )