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
어렵지 않게 만들 수 있다.