某年第一周開始日期實現(xiàn)方法
更新時間:2012年01月28日 22:43:37 作者:
你想獲取某一年份第一周開始的日期,Insus.NET給你的答案,可以參考使用下面這個函數
參考網址 http://www.dbjr.com.cn/article/29551.htm
SELECT [StartDate] FROM [dbo].[udf_Week](2012,2012) WHERE [Week] = 1
上面SQL語句執(zhí)行結果:
udf_StartDateOfFirstWeek
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION udf_StartDateOfFirstWeek
(
@Year INT
)
RETURNS DATE
AS
BEGIN
DECLARE @StartDate DATE = CAST((CAST(@Year AS VARCHAR(4)) + '-01-01') AS DATE)
RETURN
CASE WHEN (DATEPART(DW,@StartDate) > 4)
THEN DATEADD(DAY,(8 - DATEPART(DW,@StartDate)) ,@StartDate)
ELSE DATEADD(DAY,(-(DATEPART(DW,@StartDate)-1)),@StartDate)
END
END
GO
函數執(zhí)行Demo:
復制代碼 代碼如下:
SELECT [StartDate] FROM [dbo].[udf_Week](2012,2012) WHERE [Week] = 1
上面SQL語句執(zhí)行結果:
復制代碼 代碼如下:
udf_StartDateOfFirstWeek
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION udf_StartDateOfFirstWeek
(
@Year INT
)
RETURNS DATE
AS
BEGIN
DECLARE @StartDate DATE = CAST((CAST(@Year AS VARCHAR(4)) + '-01-01') AS DATE)
RETURN
CASE WHEN (DATEPART(DW,@StartDate) > 4)
THEN DATEADD(DAY,(8 - DATEPART(DW,@StartDate)) ,@StartDate)
ELSE DATEADD(DAY,(-(DATEPART(DW,@StartDate)-1)),@StartDate)
END
END
GO
函數執(zhí)行Demo:
相關文章
一個函數解決SQLServer中bigint 轉 int帶符號時報錯問題
這篇文章主要介紹了解決SQLServer中bigint 轉 int帶符號時報錯問題的函數,需要的朋友可以參考下2014-08-08SQL Server中判斷和處理NULL值的多種方法和解決方案
在SQL Server數據庫中,NULL是表示缺少數據或未知值的特殊標記,處理NULL值是SQL開發(fā)人員經常遇到的問題之一,本文將介紹SQL Server中判斷和處理NULL值的不同方法,以及一些解決方案,幫助您更好地處理數據庫中的NULL值情況,需要的朋友可以參考下2024-01-01