WorkaHolic

해당날의 MAX AND MIN DayTime 구하기

2010. 4. 8. 22:18
반응형

--MIN DayTime
CREATE  Function MinDay
(@seDate SMALLDATETIME)
RETURNS SMALLDATETIME
AS
BEGIN
        DECLARE
        @reDate SMALLDATETIME,
        @crDate SMALLDATETIME

SET @crDate = LEFT(@seDate, 10)

SELECT @reDate = DateADD(month, 0, @crDate)

RETURN ( @reDate )
END

--MAX DayTime
CREATE    function MaxDay
(@seDate SMALLDATETIME)
RETURNS SMALLDATETIME
AS
BEGIN
        DECLARE
        @reDate SMALLDATETIME,
        @crDate SMALLDATETIME

SET @crDate = LEFT(@seDate, 10)

SELECT @reDate = DateADD(minute, -1, DateADD(day, 1, DateADD(month, 0, @crDate)))

RETURN ( @reDate )

-- 한마디
ms로 초단위로 끊을려고 하였건만, 초단위로는 Return Value 가 안되는거 같당.. ㅠ_ㅠ
쩝.. 어쩔 수 없이 분단위로 끊어버렸다...;; 그리하여 23:59분이 최고 MAXDAY가 되어버렸다
MinDay 는 잘나온당 -_-;; 어차피 00:00:00 이니깐..

---- 사용 예
select dbo.MaxDay('2003-05-05')
select dbo.MaxDay('2003-05-05 21:39:28')
결과 리턴
2003-05-05 23:59:00


select dbo.MinDay('2003-05-05')
select dbo.MinDay('2003-05-05 21:39:28')
결과 리턴
2003-05-05 00:00:00

-- 캬오!! 함수까지 만들어야 했다니 ㅠ_ㅠ;;; 요런 함수가 없었었다 -_-;; 

반응형