簡體   English   中英

SQL:從星期碼和年份獲取月份名稱

[英]SQL: Get the month name from weekcode and year

我有一個名為“ tbl_TimeSheet”的表,其中包含一列WorkWeek,數據類型為nvarchar。

   [tbl_WorkWeek]
 1 |  47-2018
 2 |  36-2018
 3 |  1-2019

問題是我正在嘗試將“-”號之前的第一個數字轉換為日期名稱月份,並出現一條錯誤消息,提示“將nvarchar值“ 1-”轉換為數據類型int時轉換失敗”。 我可以輕松獲得WorkYear,但不能獲得月份。 我真的不知道該使用“-”符號。

我對數據庫和sql真的很陌生。 任何幫助,將不勝感激。 謝謝!

Current Code: 

SELECT WorkWeek, 
RIGHT(WorkWeek, 4) AS [WorkYear],
DATENAME(month, DATEADD(week, LEFT(WorkWeek, 2) - 1, DATEADD(wk, 
DATEDIFF(wk, - 1, DATEADD(yy, DATEDIFF(yy, 0,  GETDATE()), 0)), 0))) AS 
[WorkMonth]  

FROM tbl_WorkWeek

所需輸出:

     [WorkWeek] | [WorkMonth] |  [WorkYear]
     ---------------------------------------
   1 |  47-2018 |   November  |     2018
   2 |   1-2019 |   January   |     2019
   3 |  36-2018 |   September |     2018

您可以在下面嘗試-使用charindex() and substring()函數

SELECT WorkWeek, 
RIGHT(WorkWeek, 4) AS [WorkYear],
DATENAME(month, DATEADD(week, substring(WorkWeek,0,charindex('-',WorkWeek)) - 1, DATEADD(wk, 
DATEDIFF(wk, - 1, DATEADD(yy, DATEDIFF(yy, 0,  GETDATE()), 0)), 0))) AS 
[WorkMonth]  
FROM tbl_WorkWeek

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM