오라클 DECODE, GREATEST 로 음수값 처리하기
음수면 0으로 반환하고 싶을 때, 처리하는 방법을 궁리했다. 구글의 힘으로 조합하니 아래와 같이 2가지 정도가 좋을 듯. 음수면 무조건 0을 반환하고 싶으면 GREATEST 함수를 사용하자.GREATEST(변수, 0) 하면 끝이다. 이 함수는 인자 중에 가장 큰 값을 반환해 주는 함수인데, 음수 보다 0이 크니 변수가 음수일 경우 0이 반환된다. 두번째는 부호에 따라 처리해야 하면DECODE(SIGN(변수), 1, 0, 변수)SIGN함수는 부호를 반환해 주는데, 양수면 1, 음수면 -1, 0이면 0이 반환된다. 그에 따라 알아서 사용하면 될 듯. 끝~
2013. 4. 10.
MSSQL, 줄리안데이트 <-> DATETIME 바꾸는 함수
DATETIME -> 줄리안데이트 CREATE function [dbo].[DATETIME_TO_JULIAN](@date as datetime) returns int as begin -- DataTime 값을 줄리안데이트 형식으로 변환 declare @return as int, @tempdate as char(8), @basedate as datetime, @tempyyyy as int, @interval as int set @tempdate = convert(char(8), @date, 112) set @tempyyyy = year(@date) -- cast(left(@tempdate, 4) as int) set @basedate = convert(datetime, left(@tempdate, 4) +..
2012. 1. 2.
MSSQL, 줄리안 데이트로 바꾸기
이달말일 SELECT ( DatePART ( yy, ( DATEADD(day, -1, DATEADD ( mm, 1, DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)) ) ) ) -1900 ) * 1000 + DatePART ( dy, ( DATEADD ( day, -1, DATEADD(mm, 1, DATEADD (mm, DATEDIFF(mm, 0, getdate()), 0) ) ) ) ) 전달말일 SELECT ( DatePART ( yy, ( DATEADD(day, -1, DATEADD ( mm, 0, DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)) ) ) ) - 1900 ) * 1000 + DatePART ( dy, ( DATEADD ( day..
2012. 1. 2.