게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
re: MS SQL Delete 관련 문의 |
---|
작성자: jinny
작성일시: 2004-09-24 14:56,
조회수: 940
|
CAST 와 DATEDIFF 를 이용해서 설명을 해주셨는데 CONVERT 와 DATEADD 를 이용한 다른 방식으로 설명드리겠습니다. ㅜㅜ;;
먼저 날짜부분은 CONVERT 를 이용해서 DATETIME 형태로 변환하는 방법은 CONVERT(DATETIME, '2004/01/23 17:00:00') 형태로 하시면 됩니다. 저의 경우 CAST 보다는 CONVERT 가 더 사용하기 쉬워서 CONVERT를 많이 사용합니다. 물론 개인마다 차이는 있겠죠. 그리고 오늘날짜 기준으로 10이전 데이터므로 DATEADD(D, -10, GETDATE()) 하시면 날짜 기준으로 현재시간(GETDATE()) 보다 10일 이전의 날짜/시간을 가져옵니다. D 가 날짜를 의미하는거죠. 그럼 이런 형태가 가능합니다. DELETE FROM 테이블 WHERE CONVERT(DATETIME, 날짜칼럼) < DATEADD(D, -10, GETDATE()) 날짜칼럼의 값이 현재시간보다 10일 이전이면 모두 삭제하는 거죠. 그리고 실제 날짜 입력값이 2004/01/02 12:00:00 형태의 값이라면 DB 에 넣을때 CONVERT(DATETIME, 날짜) 형태로 변환하여 TABLE에 넣으시면 DATETIME 으로 값을 넣을수 있으며 날짜 연산작업이 훨씬 쉽습니다. 아울러서 위 형태로 작업시에는 날짜칼럼에 INDEX 가 걸려있더라도 날짜칼럼이 변형되어 사용되므로 INDEX 를 사용할 수 없습니다. 만일 날짜칼럼이 DATETIME 형식이라면 DELETE FROM 테이블 WHERE 날짜칼럼 < DATEADD(D, -10, GETDATE()) 형태로 바로 사용할수 있으며 날짜칼럼에 INDEX가 설정되어 있다면 대량의 DATA 작업시 훨씬 빠른 처리가 가능합니다. 물론 물리적으로 TABLE RECORD 값들이 삭제되므로 INDEX REBUILD 작업을 정기적으로 수행할 필요도 있구여. CONVERT 와 DATEADD 에 관련된 내용은 MSSQL 온라인 설명서를 참고로 하시기 바랍니다. |
IP 주소: 203.225.5.164
|
송원석 |
이 방법도 역시 좋은 방법인 것 같습니다. ^_^
|
2004-09-24 21:34 |
게시물 | ||||
---|---|---|---|---|
745 |
lang2 |
2004-10-01 | 628 | |
744 | 2004-10-01 | 2,479 | ||
743 |
오마르 |
2004-10-01 | 618 | |
742 | 2004-10-01 | 2,777 | ||
741 |
똥강아지 |
2004-09-26 | 720 | |
740 | 2004-09-29 | 2,463 | ||
739 |
똥강아지 |
2004-10-01 | 681 | |
738 | 2004-10-01 | 2,526 | ||
737 |
PDF파일이 안열리는거 해결 [2] |
쏭밤 |
2004-09-25 | 990 |
736 |
오마르 |
2004-09-23 | 678 | |
735 | 2004-09-23 | 2,701 | ||
734 | 2004-09-24 | 2,588 | ||
733 |
오마르 |
2004-09-22 | 734 | |
732 | 2004-09-22 | 2,775 | ||
731 |
jinny |
2004-09-24 | 683 | |
730 |
폴라리스 |
2004-09-22 | 745 | |
729 | 2004-09-22 | 2,495 | ||
728 |
nnnekh |
2004-09-20 | 897 | |
727 | 2004-09-20 | 2,947 | ||
726 |
궁금이 |
2004-09-20 | 730 | |
725 | 2004-09-20 | 2,724 | ||
jinny |
2004-09-24 | 940 | ||
723 |
오마르 |
2004-09-20 | 642 | |
722 | 2004-09-16 | 2,644 | ||
721 | 2004-09-16 | 3,153 |