안규 공부방

MS-SQL > User Function - 초간격, 분간격, 시간간격, 일간격 표현하기 (날짜비교후)

등록일 : 2017-07-03 19:18 조회수 : 92,862

초간격, 분간격, 시간간격, 일간격 표현하기 (날짜비교후)


1) 현재보다 과거의 지정된 일자와의 차 표현 - 두 일자간 차가 다음과 같은 단위 일때
- 초 단위 : ~초 전으로 표현
- 분 단위 : ~분 전으로 표현
- 시간 단위 : ~시간 전으로 표현
- 그 외 하루가 넘어갈 때 : ~일 전으로 표현



사용자 함수와 날짜함수(DATEDIFF)를 이용하여 초간격, 분간격, 시간간격, 일간격 표현해 볼 수 있다.

아래처럼 사용자 함수를 만든다.
 
CREATE FUNCTION     [dbo].[fn_RegDate_Display](  
		        @iDate          DATETIME  
	) 
		RETURNS VARCHAR(20)  
		AS  
			BEGIN  
				DECLARE @wDisplay       VARCHAR(20)  
				SELECT  @wDisplay       = ''  
			  
				IF  DATEDIFF(ss,@iDate,GETDATE())   < 60   
				   SELECT  @wDisplay   = CAST(DATEDIFF(ss,@iDate,GETDATE()) AS VARCHAR) + '초전'  
			   ELSE IF DATEDIFF(mi,@iDate,GETDATE())   < 60   
				   SELECT  @wDisplay   = CAST(DATEDIFF(mi,@iDate,GETDATE()) AS VARCHAR) + '분전'  
			   ELSE IF DATEDIFF(hh,@iDate,GETDATE())   < 24   
				   SELECT  @wDisplay   = CAST(DATEDIFF(hh,@iDate,GETDATE()) AS VARCHAR) + '시간전'  
			   ELSE   
				   SELECT  @wDisplay       = CONVERT(VARCHAR(10),@iDate,120)         
			   RETURN (@wDisplay)  
			END  
 
select *, dbo.fn_RegDate_Display(writeday) from t_db



어렵지 않게 만들 수 있다.
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.