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

首頁 > 數據庫 > SQL Server > 正文

在sql Server自定義一個用戶定義星期函數

2024-08-31 00:45:23
字體:
來源:轉載
供稿:網友
文件:.wmv;大?。?9,535KB;長度:00:26:39。
下載地址:SqlFunction_udf_Week.rar
以下內容于20120105更新:
2012年剛到,開發的軟件使用這個函數發現bug。2012年第一周應該是2012-01-01至2012-01-07,但此函數卻把2012-01-08至2012-01-14當作第一周。

就此bug對此函數修改如下:

復制代碼 代碼如下:


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹巴县| 手游| 庄浪县| 南宁市| 泰和县| 泰兴市| 汶上县| 罗甸县| 屏东市| 锡林郭勒盟| 隆回县| 汶川县| 德阳市| 常德市| 清徐县| 阿合奇县| 海晏县| 余庆县| 清水河县| 临夏市| 高碑店市| 察隅县| 富蕴县| 固始县| 安岳县| 唐河县| 宣恩县| 务川| 保定市| 印江| 石棉县| 越西县| 贵州省| 义马市| 专栏| 翁牛特旗| 盘山县| 游戏| 来宾市| 固原市| 来宾市|