2011-04-20 2 views
4

여러 날짜/시간 필드를 포함하는 테이블을 얻었고 목록을 내려갈 때마다 1 일씩 각 날짜를 증가시켜야합니다. 그래서 날짜가 될 존재로 :업데이트 문장을 사용하여 날짜/시간 필드 증가시키기

2011-04-19 
2011-04-19 
2011-04-19 
2011-04-19 

내가처럼 보이게하기 위해 문을 실행해야합니다 : 그러니까 기본적으로, 첫 번째 행은 동일하게 유지

2011-04-19 
2011-04-20 
2011-04-21 
2011-04-22 

을, 두 번째 행은 도착 3 일 추가됨, 4 일 도착 3 일 추가 등등.

나는 무엇을 해야할지 알 수는 없지만 잘 알지 못한다. 나는 커서를 사용하지 않기를 원한다. 누군가 조언을 해 준다면 많은 도움이 될 것이다. 감사!

답변

3

사용할 수있는 세션 변수 :

SET @r := -1; 

UPDATE mytable 
SET  mydate = mydate + INTERVAL (@r := @r + 1) DAY; 

SQL Server 2005에서 :

WITH q AS 
     (
     SELECT *, 
       ROW_NUMBER() OVER (ORDER BY mydate) rn 
     FROM mytable 
     ) 
UPDATE q 
SET  mydate = DATEADD(d, rn - 1, mydate) 
+0

내가 그래도 난 SQL 서버를 2005 년 감사를 사용하고 있음을 명확히해야한다 생각! – Scott

+0

Brilliant. 고맙습니다! SQL-fu는 강력합니다. – Scott

관련 문제