CREATE FUNCTION [mirae].[fn_GetWeekDayInfo]
(
@P_indate NVARCHAR(10) -- 검색입력날짜
)
/*
SELECT startdate AS WEEK_BEG, enddate AS WEEK_END, weekOfMonth AS WEEK_NUM, weekOfYear AS WEEK_YEAR FROM [mirae].[fn_GetWeekDayInfo]('20211228')
*/
RETURNS @ReturnTable TABLE
(
startdate DATETIME,
enddate DATETIME,
weekOfMonth INT,
weekOfYear INT
)
AS
BEGIN
DECLARE @P_date DATETIME -- 검색일
DECLARE @P_startdate DATETIME -- 시작일
DECLARE @P_enddate DATETIME -- 마감일
DECLARE @P_weekOfMonth INT -- 월주차
DECLARE @P_weekOfYear 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_weekOfMonth = DATEPART(WW, @P_date) - DATEPART(WW, CONVERT(DATETIME, LEFT(@P_indate, 6) + '01', 112)) + 1
--DECLARE @YYYYMMDD AS VARCHAR(8)='20210104'
--SELECT @P_weekOfYear = LEFT(@P_date, 4) AS 년도, DATEPART(WK, CONVERT(DATE,@P_date)) AS 주차
SELECT @P_weekOfYear = DATEPART(WK, CONVERT(DATE,@P_date))
INSERT INTO @ReturnTable
(
startdate, enddate, weekOfMonth, weekOfYear
)
VALUES
(
@P_startdate, @P_enddate, @P_weekOfMonth, @P_weekOfYear
)
RETURN
END
해당 날짜가 소속된 주가 해당 연도의 몇주차인지? (0) | 2021.01.04 |
---|---|
특정일 해당 월 주차 구하기 (1) | 2021.01.04 |
Identity 속성을 갖는 테이블/컬럼 찾기 (0) | 2020.07.29 |
테이블 및 칼럼에 코멘트/주석 달고 조회하기 comment (0) | 2020.04.09 |
MS-SQL 트랜잭션 로그 관리 (0) | 2019.04.26 |