SQL 질문과 답변 게시판
저의 저장프로시저에서 발췌했습니다
alter Proc Test
@ToDate Datetime
as
select @todate
go
mssql2000에서 테스트해 보니
exec test '2010.06.30 11:59:59.995 PM'
---->2010-06-30 23:59:59.990
exec test '2010.06.30 11:59:59.998 PM'
---->2010-06-30 23:59:59.997
exec test '2010.06.30 11:59:59.999 PM'
----->2010-07-01 00:00:00.000
이렇게 나옵니다
필요한 것은 날짜이기 때문에 위의 두가지는 제게는 문제가 안되지만
세번째 것은 날짜가 다르게 나오네요
델파이의 endofthemonth함수로 2010.6월말을 구하면 '2010.06.30 11:59:59.999 PM' 와 같이 되고 mssql2000에서 돌리니
2010.07.01로 인식하네요
milisecond를 mssql2000에서 인식하지 못해서 일어나는 문제인가요? 해결법은 무엇인가요?
endofthemonth함수는 계속해서 쓰고 싶은데
고수님들 부탁드립니다.
답변감사합니다
2010.06.01부터 2010.06.30사이의 레코드를 처리하려고
between @FromDate and @Todate 로 쿼리를 작성하고
@Todate에 '2010.06.30 11:59:59.999 PM' 를 주면
2010.06.01부터 2010.07.01까지 작업하게 되는데 무슨수가 없을까요?
수동으로 밀리세컨드를 999가아닌 걸로 해주기는 화가나고...
델파이의 endofthemonth함수는 '2010.06.30 11:59:59.999 PM' 로 값을 리턴하기때문에 생기는 문제입니다


dateitme 은 3.333 미리 세컨으로 정밀도가 있고 반올림 되어 맨 뒷자리가 0,3,7 밖에 없습니다.
.999 를 .997 로 하시면 반올림 되지 않습니다.