상세 컨텐츠

본문 제목

특정일자의 주차와 주차시작일자 주차마지막 일자 구하기

DataBase/SQL Server

by 탑~! 2014. 3. 5. 14:20

본문

CREATE FUNCTION [dbo].[fn_GetWeekDayInfo] 
(
     @P_indate   NVARCHAR(10)                    -- 검색입력날짜
)

 

RETURNS @ReturnTable  TABLE 
(
    startdate   DATETIME,
    enddate    DATETIME,
    week         INT

)
AS

    BEGIN

        DECLARE @P_date    DATETIME                -- 검색일
        DECLARE @P_startdate  DATETIME           -- 시작일
        DECLARE @P_enddate   DATETIME           -- 마감일
        DECLARE @P_week    INT                         -- 주차

 

        SET @P_indate = '20110101'
        SET @P_date = CONVERT(DATETIME, @P_indate, 112)            -- 입력받은 문자열 날짜변환

 

        -- 검색일자의 해당주에 마지막날 ( 토요일 )
        SET @P_enddate = DATEADD(DD, ( 7 - DATEPART(DW, @P_date)), @P_date)

 

        -- 검색일자의 해당주에 시작일
        SET @P_startdate = DATEADD(DD, -6, @P_enddate)

 

        -- 주차
        SET @P_week = DATEPART(WW, @P_date) - DATEPART(WW, CONVERT(DATETIME, LEFT(@P_indate, 6) + '01', 112)) + 1

 

        INSERT INTO @ReturnTable
        (

                startdate, enddate, week

        )

        VALUES

        (

                @P_startdate, @P_enddate, @P_week

        )

 

        RETURN

    END

 

 

 

SELECT startdate, enddate, week FROM [dbo].[fn_GetWeekDayInfo]('201008010')

'DataBase > SQL Server' 카테고리의 다른 글

테이블 용량 확인 및 레코드수 조회 쿼리  (0) 2014.04.01
MSSQL 테이블 정보 쿼리(Comment 포함)  (0) 2014.04.01
Cursor Output 매개 변수  (0) 2014.02.25
주차 뽑아내기  (0) 2013.12.23
SQL Server 테이블 목록  (0) 2013.10.25

관련글 더보기