[英]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.