Sql server 根据工作周数获取月份、季度
我希望得到月和季度的基础上工作周数 例:如果工作周数是7,那么它在季度=1和月份=2 同样,如果WK=35,我应该能够得到季度=2和月份=8Sql server 根据工作周数获取月份、季度,sql-server,Sql Server,我希望得到月和季度的基础上工作周数 例:如果工作周数是7,那么它在季度=1和月份=2 同样,如果WK=35,我应该能够得到季度=2和月份=8 依此类推。可能是一个处理此问题的函数 函数定义 试验 结果 几周还是别的什么?在一周中它会发生什么变化?假设您通过了7个工作周,您想要哪一年的季度和月份?我可以问一下为什么是函数而不是sp吗?sp会更好,但考虑到这是一个内联表函数,性能不应该是一个问题。 CREATE FUNCTION dbo.get_Quater_Month (@WeekofYear I
依此类推。可能是一个处理此问题的函数 函数定义 试验 结果
几周还是别的什么?在一周中它会发生什么变化?假设您通过了7个工作周,您想要哪一年的季度和月份?我可以问一下为什么是函数而不是sp吗?sp会更好,但考虑到这是一个内联表函数,性能不应该是一个问题。
CREATE FUNCTION dbo.get_Quater_Month (@WeekofYear INT)
RETURNS Table
AS
RETURN
(WITH X AS
(
SELECT TOP (CASE WHEN YEAR(GETDATE()) % 4 = 0 THEN 366 ELSE 365 END)
DATEADD(DAY
,ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) -1
, CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '0101' )
DayNumber
From master..spt_values
)
SELECT DATEPART(QUARTER,MIN(DayNumber)) AS [QUARTER]
,DATEPART(MONTH,MIN(DayNumber)) AS [Month]
FROM X
WHERE DATEPART(WEEK,DayNumber) = @WeekofYear)
SELECT * FROM dbo.get_Quater_Month (7)
╔═════════╦═══════╗
║ QUARTER ║ Month ║
╠═════════╬═══════╣
║ 1 ║ 2 ║
╚═════════╩═══════╝