国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

在sql Server自定義一個(gè)用戶定義星期函數(shù)

2024-08-31 00:57:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
文件:.wmv;大小:19,535KB;長(zhǎng)度:00:26:39。
下載地址:SqlFunction_udf_Week.rar
以下內(nèi)容于20120105更新:
2012年剛到,開(kāi)發(fā)的軟件使用這個(gè)函數(shù)發(fā)現(xiàn)bug。2012年第一周應(yīng)該是2012-01-01至2012-01-07,但此函數(shù)卻把2012-01-08至2012-01-14當(dāng)作第一周。

就此bug對(duì)此函數(shù)修改如下:

復(fù)制代碼 代碼如下:


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[udf_Week]
(
@StartYear INT,
@EndYear INT
)
RETURNS @Week TABLE([WeekId] INT IDENTITY(1,1) PRIMARY KEY,[Year] [INT] NULL,[Week] [INT] NULL,[StartDate] [DATETIME] NULL,[EndDate] [DATETIME] NULL)
AS
BEGIN
DECLARE @YearStartDate DATETIME
DECLARE @YearEndDate DATETIME
DECLARE @WeekStartDate DATETIME
DECLARE @WeekEndDate DATETIME
DECLARE @Weeks INT

WHILE @StartYear <= @EndYear
BEGIN
SET @YearStartDate = CAST((CAST(@StartYear AS VARCHAR(4)) + '-01-01') AS DATETIME)
SET @YearEndDate= CAST((CAST(@StartYear AS VARCHAR(4))+ '-12-31') AS DATETIME)
SET @Weeks = 1

IF DATEPART(DW,@YearStartDate) > 4
SET @YearStartDate = DATEADD(DAY,(8 - DATEPART(DW,@YearStartDate)) ,@YearStartDate)
ELSE
SET @YearStartDate = DATEADD(DAY,(-(DATEPART(DW,@YearStartDate)-1)),@YearStartDate)

SET @WeekStartDate = @YearStartDate
SET @WeekEndDate = DATEADD(DAY,6,@WeekStartDate)
WHILE DATEDIFF(DAY,@WeekStartDate,@YearEndDate) >= 4
BEGIN
INSERT INTO @Week([Year],[Week],[StartDate],[EndDate]) VALUES (@StartYear,@Weeks,@WeekStartDate,@WeekEndDate)
SET @Weeks = @Weeks + 1
SET @WeekStartDate = @WeekStartDate + 7
SET @WeekEndDate = @WeekEndDate + 7
END
SET @StartYear = @StartYear + 1
END
RETURN
END

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海宁市| 通城县| 类乌齐县| 府谷县| 南澳县| 女性| 南投县| 青海省| 工布江达县| 托克逊县| 札达县| 六盘水市| 寿宁县| 溧水县| 仪征市| 凌源市| 宁国市| 三门峡市| 营口市| 吴堡县| 隆回县| 府谷县| 东兰县| 乐平市| 宁波市| 潼南县| 云南省| 敦煌市| 福泉市| 浦城县| 新津县| 应用必备| 麻栗坡县| 花莲市| 平泉县| 宁海县| 沭阳县| 靖远县| 延安市| 大洼县| 古田县|