佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 在sql Server自定義一個(gè)用戶定義星期函數(shù)

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

熱門標(biāo)簽:Linux服務(wù)器 服務(wù)外包 呼叫中心市場(chǎng)需求 百度競(jìng)價(jià)排名 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 AI電銷
文件:.wmv;大?。?9,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

標(biāo)簽:蘭州 黃山 仙桃 湘潭 衡水 崇左 湖南 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在sql Server自定義一個(gè)用戶定義星期函數(shù)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    江西省| 方山县| 赤峰市| 班玛县| 兰西县| 南召县| 罗源县| 常德市| 湘潭县| 嘉善县| 桓台县| 来安县| 栾城县| 全州县| 沂南县| 方正县| 奎屯市| 乐安县| 玉树县| 大田县| 通山县| 满城县| 茶陵县| 江津市| 彩票| 磐石市| 娄烦县| 永新县| 大竹县| 弥勒县| SHOW| 宁南县| 武邑县| 奉贤区| 澳门| 延吉市| 元谋县| 柳河县| 娄烦县| 治县。| 改则县|