반응형
SMALL

DB 39

[MSSQL] 날짜 구하기

※ 기준 날짜 : 2016-06-04 ※ 현재 달의 첫 날 구하기 SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) => 2016-06-01 00:00:00.000 ※ 현재 주의 월요일 구하기 참고사항 : 요일의 시작은 일요일부터이다. SELECT DATEADD(WK, DATEDIFF(WK,0,GETDATE()), 0) => 2016-05-30 00:00:00.000 ※ 현재 달의 마지막 날 구하기 SELECT DATEADD(MS,-3,DATEADD(MM, DATEDIFF(M,0,GETDATE() )+1, 0)) => 2016-06-30 23:59:59.997 ※ 현재 해의 마지막 날 구하기 SELECT DATEADD(MS,-3,DATEADD(YY, DATEDIFF..

DB 2024.02.20

[MSSQL] PIVOT - 날짜 상위 10개 가져와서 PIVOT 하기

날짜 상위 10개 가져와서 PIVOT 하기 DECLARE @DATE VARCHAR(1000) ,@DATETIME VARCHAR(1000) = '' , @QUERY VARCHAR(8000) DECLARE CURSOR1 CURSOR FOR SELECT DISTINCT TOP 10 CONVERT(DATE, [컬럼명]) FROM [테이블명] ORDER BY 1 DESC OPEN CURSOR1 FETCH NEXT FROM CURSOR1 INTO @DATE WHILE (@@FETCH_STATUS = 0) BEGIN SET @DATETIME = @DATETIME + '[' + @DATE + '],' FETCH NEXT FROM CURSOR1 INTO @DATE END CLOSE CURSOR1; DEALLOCATE C..

DB 2024.02.20

트랜잭션 분리

아래 색칠한 부분만 보시면 됩니다. 저 옵션이 들어가면.. 트랜잭션이 분리되어서 저 안에서 Commit은 다른 곳의 트랜잭션에 영향을 미치지 않습니다. PROCEDURE WRITE_ERR_LOG(p_err_seq NUMBER ,p_batch_name VARCHAR2 ,p_exe_date date ,p_error_msg VARCHAR2) is PRAGMA AUTONOMOUS_TRANSACTION; BEGIN INSERT INTO intf_err_log (seq_id, batch_name, exe_date, error_msg) VALUES (p_err_seq, p_batch_name, p_exe_date, p_error_msg); COMMIT; END; 퍼온글인데 누구신지 불러그 유저가 없어서 스크랩만 해봤..

DB 2024.02.19

[MSSQL] 시작과 종료 일자의 날짜와 DATA 가져오기

DECLARE @변수1 VARCHAR(10) DECLARE @시작날짜 VARCHAR(100) DECLARE @종료날짜 VARCHAR(100) DECLARE @TMP_TBL TABLE ( [컬럼1] VARCHAR(10), [컬럼2] VARCHAR(10), [컬럼3] VARCHAR(2) ) -- CURSOR 문 시작 DECLARE CURSOR1 CURSOR FOR SELECT [컬럼1], [컬럼2] FORM USER OPEN CURSOR1 FETCH NEXT FROM CURSOR1 INTO @변수1, @시작날짜 , @종료날짜 WHILE(@@FETCH_STATUS = 0) BEGIN INSERT INTO @TMP_TBL select @변수1, convert(char(10),dateadd(d,number,@@시..

DB 2024.02.18

[MSSQL] HINT 사용법

보통 아래의 힌트들은 FROM 절 의 테이블 이름 뒤에 붙여서 특정 테이블을 접근하는것을 변경하거나 Query문의 제일 하단에 OPTION() 구문을 이용하여 Query문의 실행 계획을 조절 할수 있다. WITH (INDEX( )) From 절 뒤에 붙여서 사용하는 이 힌트 문은 테이블에 접근하기 위해 사용되는 인덱스를 특정 인덱스로 지정할수 있다. 그렇지만 별로 권장하지는 않는 만약 인덱스가 재 생성 되거나 자신이 지정한 이름과 다르게 인덱스가 변경될 경우에는 심각한 성능상의 영향을 줄수 있다. 사용법 SELECT * FROM TABLE_NAME WITH(INDEX()) WITH (INDEX(0)) From 절 뒤에 붙여서 사용하는 이 힌트 구문은 테이블에 접근하는데 Full Scan을 하도록 한다. ..

DB 2024.02.17

Table 컬럼 추가 및 삭제 변경

1. 컬럼추가 alter table [테이블명] add [추가할 컬럼명] [컬럼타입] default [값]; alter table [테이블명] add [추가할 컬럼명] [컬럼타입]; -> alter table user add name varchar(100) ; 해당 컬럼에 위치 이동은 MySql에서는 가능하다는데 필자는 안해봐서 모름 alter table [테이블명] add [추가할 컬럼명] [컬럼타입] [컬럼위치] default [값]; -> alter table user add name varchar(100) after id default; 2. 컬럼명 변경 Oracle : alter table [테이블명] change [기존컬럼명] [변경할컬럼명] [컬럼타입]; -> alter table user ..

DB 2024.02.13
반응형
LIST