2015-01-09 3 views
-1

내 검색어에 대한 도움이 필요합니다. 1 월에서 2 월까지 목록을 생성하려고했습니다. 그러나 내 질문에 어떤 부분을 잘못했거나 실수로 2 월에 기록했는지 확실하지 않습니다. 친절하게 조언하십시오. 감사합니다 당신월 1 월 날짜 기록하기

set @FirstDateOfNextMth = CONVERT(varchar,dateadd(d,-(day(dateadd(m,1,getdate()-2))),dateadd(m,1,getdate())),112) 
set @LastDateOfNextMth = CONVERT(varchar,dateadd(d,-(day(dateadd(m,2,getdate()))),DATEADD(m,2,getdate())),112) 


-------------------------------------------------- 

INSERT INTO [dbo].[ProcessLog] ([LogTime] ,[LogDescription] ,[LogRemark]) 
VALUES (GETDATE(), 'Import Client Info', '') 

-------------------------------------------------- 

SET @sSQL = 'SELECT DISTINCT CHDR.CHDRNUM, ZTRN.CCDATE, CHDR.CRDATE, CLNT.CLNTNUM, CLNT.SURNAME, CLNT.GIVNAME, 
      CLNT.SECUITYNO, ZCLN.EMAIL from (((MPIDTA.ZTRNPF AS ZTRN 
      LEFT JOIN MPIDTA.CHDRPF AS CHDR ON ZTRN.RLDGACCT = CHDR.CHDRNUM AND ZTRN.EFFDATE = CHDR.CURRFROM) 
      LEFT JOIN MPIDTA.CLNTPF AS CLNT ON CHDR.COWNNUM = CLNT.CLNTNUM) 
      LEFT JOIN MPIDTA.ZCLNPF AS ZCLN ON CLNT.CLNTNUM = ZCLN.CLNTNUM) 
      where (ZTRN.BATCPFX = ''BA'' AND ZTRN.BATCCOY = ''1'' 
      AND ZTRN.CNTTYPE = ''PTB'' AND ZTRN.TRANDATE >= ''20140101'' 
      AND (ZTRN.EXPIRY_DATE BETWEEN ' + @FirstDateOfNextMth + ' AND ' + @LastDateOfNextMth + ')) 
      AND (CHDR.MPLNUM = '''' AND CHDR.CHDRPFX = ''CH'' 
      AND CHDR.CHDRCOY = ''1'' AND CHDR.VALIDFLAG = ''1'')' 

SET @sExe = 'Insert into dbo.TPA_Client_Info Select * FROM OPENQUERY(AS400, ''' + REPLACE(@sSQL, '''', '''''') + ''')' 

exec (@sExe) 

답변

0

문제 @FirstDateOfNextMth입니다.

set @FirstDateOfNextMth = CONVERT(varchar,dateadd(d,-(day(dateadd(m,1,getdate()-2))), 
          dateadd(m,1,getdate())),112) 

결과는 @FirstDateOfNextMth 이후 20150202

조건 ZTRN.EXPIRY_DATE 혼자 feb개월 사이에 여과 곳에서 20150202입니다. 이런 식으로 변경해보십시오.

set @FirstDateOfNextMth = DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 
+0

고맙습니다. 작품 –