Quote:
Originally Posted by gedimazs
dude it is saying that out-of-range datatime value you don't need to be SQL expert to understand this. Try to remember what date/time values you have changed and change it back
|
mmmm here there are things what i changed:
FN_BinDateToDateTime:
Code:
/******************************************************************************
이 름 : dbo.FN_BinDateToDateTime
설 명 : Binary Date를 DateTime 형식으로 반환한다.
반환값 :
수정내역:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2006-05-05 Han Ji Wook 1. 초기생성
2.0 2010-01-10 ADM-Cyrax/Darth Nerd
******************************************************************************/
CREATE 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 = '20100' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
IF len(@v_strAux) = 8
SELECT @v_strtime = '2010' + CAST(CAST(@i_bin_time as int) as varchar(20))
ELSE
SELECT @v_strtime = '201' + 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
FN_GetSiegeStartBinTime:
Code:
/******************************************************************************
이 름 : 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주후 일요일
******************************************************************************/
CREATE 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, 7-DATEPART(dw, @i_GetDate), @i_GetDate), 112) + '210000'
SELECT @v_siege_start_time = SUBSTRING(@v_siege_start_date,4,1) * 100000000
+ SUBSTRING(@v_siege_start_date,5,2) * 1000000
+ SUBSTRING(@v_siege_start_date,7,2) * 10000
+ SUBSTRING(@v_siege_start_date,9,2) * 100
+ SUBSTRING(@v_siege_start_date,11,2)
IF DATALENGTH(@v_siege_start_time) <> 4
SELECT @v_siege_start_time = 0x00000000
RETURN @v_siege_start_time
END
or can you send me siege 2010 fixed and worked u.u
thanks