USE [Character]
GO
/****** Object: UserDefinedFunction [dbo].[FN_BinDateToDateTime] Script Date: 10/12/2020 by ULTIMO ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[FN_BinDateToDateTime] (
@i_bin_time binary(4)
) RETURNS datetime
AS
BEGIN
DECLARE @v_datetime datetime
DECLARE @v_strAux varchar(20)
DECLARE @v_strtime varchar(20)
SET @v_strAux = CAST(CAST(@i_bin_time as int) as varchar(20))
IF len(@v_strAux) = 7
SELECT @v_strtime = '20200' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
IF len(@v_strAux) = 8
SELECT @v_strtime = '2020' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
SELECT @v_strtime = '202' + CAST(CAST(@i_bin_time as int) as varchar(20))
SELECT @v_strtime = SUBSTRING(@v_strtime,1,4)
+'-'+SUBSTRING(@v_strtime,5,2)
+'-'+SUBSTRING(@v_strtime,7,2)
+' '+SUBSTRING(@v_strtime,9,2)
+':'+SUBSTRING(@v_strtime,11,2)
SELECT @v_datetime = CAST(@v_strtime as datetime)
RETURN @v_datetime
END
USE [Character]
GO
/****** Object: UserDefinedFunction [dbo].[FN_BinDateToDateTime] Script Date: 10/12/2020 by ULTIMO ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[FN_BinDateToDateTime] (
@i_bin_time binary(4)
) RETURNS datetime
AS
BEGIN
DECLARE @v_datetime datetime
DECLARE @v_strAux varchar(20)
DECLARE @v_strtime varchar(20)
SET @v_strAux = CAST(CAST(@i_bin_time as int) as varchar(20))
IF len(@v_strAux) = 7
SELECT @v_strtime = '20200' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
IF len(@v_strAux) = 8
SELECT @v_strtime = '2020' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
SELECT @v_strtime = '202' + CAST(CAST(@i_bin_time as int) as varchar(20))
SELECT @v_strtime = SUBSTRING(@v_strtime,1,4)
+'-'+SUBSTRING(@v_strtime,5,2)
+'-'+SUBSTRING(@v_strtime,7,2)
+' '+SUBSTRING(@v_strtime,9,2)
+':'+SUBSTRING(@v_strtime,11,2)
SELECT @v_datetime = CAST(@v_strtime as datetime)
RETURN @v_datetime
END
USE [CHARACTER]
GO
/****** Object: UserDefinedFunction [dbo].[FN_GetSiegeStartBinTime] Script Date: 9/22/2020 12:28:39 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/************************************************** ****************************
이 름 : dbo.FN_GetSiegeStartBinTime
설 명 : 다음 공성전 시작일자를 반환한다.
예 제 : select dbo.FN_GetSiegeStartTime --//반환값 : 0x23E52D6C
수정내역:
Ver Date Author Description
--------- ---------- --------------- -----------------------------------
1.0 2006-05-05 Han Ji Wook 1. 초기생성
1.1 2006-05-11 Han Ji Wook 1. 다음공성전 시작시간 변경 >> 2주후 일요일
1.2 2009-12-22 Park Chanik 1. 공성 2010년 에러 관련 변경
************************************************** ****************************/
ALTER FUNCTION [dbo].[FN_GetSiegeStartBinTime]
(
@i_GetDate DATETIME
) RETURNS VARBINARY(4)
AS
BEGIN
DECLARE @v_siege_start_time VARBINARY(4)
DECLARE @v_siege_start_date VARCHAR(14)
--// 다음공성전 시작시간 Default Setting : 일요일 9시
SELECT @v_siege_start_date = CONVERT(VARCHAR(10), DATEADD(d, 8-DATEPART(dw, @i_GetDate), @i_GetDate), 112) + '210000'
-- 2009년 12월 22일 변경
-- CAST(SUBSTRING(@v_siege_start_date,4,1) AS INT)* 100000000 ---> CAST(SUBSTRING(@v_siege_start_date,3,2) AS INT)* 100000000
SELECT @v_siege_start_time = CAST(SUBSTRING(@v_siege_start_date,4,1) AS INT) * 100000000
+ CAST(SUBSTRING(@v_siege_start_date,5,2) AS INT) * 1000000
+ CAST(SUBSTRING(@v_siege_start_date,7,2) AS INT) * 10000
+ CAST(SUBSTRING(@v_siege_start_date,9,2) AS INT) * 100
+ CAST(SUBSTRING(@v_siege_start_date,11,2) AS INT)
IF DATALENGTH(@v_siege_start_time) <> 4
BEGIN
SELECT @v_siege_start_time = 0x00000000
END
RETURN @v_siege_start_time
END
and
USE [CHARACTER]
GO
/****** Object: UserDefinedFunction [dbo].[FN_BinDateToDateTime] Script Date: 9/23/2020 7:26:07 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
/************************************************** ****************************
이 름 : dbo.FN_BinDateToDateTime
설 명 : Binary Date를 DateTime 형식으로 반환한다.
반환값 :
수정내역:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2006-05-05 Han Ji Wook 1. 초기생성
1.1 2009-12-22 Park Chanik 1. 공성 2010년 에러 관련 변경 , 2010년 구분 처리
************************************************** ****************************/
ALTER FUNCTION [dbo].[FN_BinDateToDateTime] (
@i_bin_time BINARY(4)
) RETURNS DATETIME
AS
BEGIN
DECLARE @v_datetime DATETIME
DECLARE @v_strtime VARCHAR(20)
-- 2009년 12월 22일 변경
IF LEN(CAST(@i_bin_time AS INT)) < 10
BEGIN
SELECT @v_strtime = '200' + CAST(CAST(@i_bin_time AS INT) AS VARCHAR(20))
END
ELSE
BEGIN
SELECT @v_strtime = '20' + CAST(CAST(@i_bin_time AS INT) AS VARCHAR(20))
END
SELECT @v_strtime = SUBSTRING(@v_strtime,1,4)
+'-'+SUBSTRING(@v_strtime,5,2)
+'-'+SUBSTRING(@v_strtime,7,2)
+' '+SUBSTRING(@v_strtime,9,2)
+':'+SUBSTRING(@v_strtime,11,2)
SELECT @v_datetime = CAST(@v_strtime AS DATETIME)
RETURN @v_datetime
END
USE [Character]
GO
/****** Object: UserDefinedFunction [dbo].[FN_BinDateToDateTime] Script Date: 10/12/2020 by ULTIMO ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[FN_BinDateToDateTime] (
@i_bin_time binary(4)
) RETURNS datetime
AS
BEGIN
DECLARE @v_datetime datetime
DECLARE @v_strAux varchar(20)
DECLARE @v_strtime varchar(20)
SET @v_strAux = CAST(CAST(@i_bin_time as int) as varchar(20))
IF len(@v_strAux) = 7
SELECT @v_strtime = '20200' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
IF len(@v_strAux) = 8
SELECT @v_strtime = '2020' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
SELECT @v_strtime = '202' + CAST(CAST(@i_bin_time as int) as varchar(20))
SELECT @v_strtime = SUBSTRING(@v_strtime,1,4)
+'-'+SUBSTRING(@v_strtime,5,2)
+'-'+SUBSTRING(@v_strtime,7,2)
+' '+SUBSTRING(@v_strtime,9,2)
+':'+SUBSTRING(@v_strtime,11,2)
SELECT @v_datetime = CAST(@v_strtime as datetime)
RETURN @v_datetime
END