본문 바로가기

반응형

msSQL

(69)
[MSSQL] DATEDIFF, DATEADD 날짜 비교, 날짜 계산 DATEDIFF 두 날짜의 차이를 계산하는 함수이다. 즉, 시작 날짜에서 종료 날짜까지의 일 수 차이를 반환한다. SELECT DATEDIFF(날짜형식, 시작날짜, 종료날짜) 1) 두 날짜의 차이 일 수 SELECT DATEDIFF(DAY, '2017-02-13', '2017-03-15') AS '차이 일 수' 2) 두 날짜 비교 DECLARE @Date DATETIME = '2017-02-15' IF DATEDIFF(d, @Date, '2017-02-13') > 0 SELECT '2017-02-13 미만 (미포함)' ELSE IF DATEDIFF(d, @Date, '2017-02-13')
[MSSQL] date format 날짜 형식 (CONVERT DATETIME) date format 날짜 포맷 CONVERT([포맷(크기)], [날짜값], [변환형식]) 다양한 날짜 표현 SELECT GETDATE() -- 2016-08-29 13:34:42.030 SELECT CONVERT(VARCHAR, GETDATE(), 0) -- 08 29 2016 1:34PM SELECT CONVERT(VARCHAR, GETDATE(), 1) -- 08/29/16 SELECT CONVERT(VARCHAR, GETDATE(), 2) -- 16.08.29 SELECT CONVERT(VARCHAR, GETDATE(), 3) -- 29/08/16 SELECT CONVERT(VARCHAR, GETDATE(), 4) -- 29.08.16 SELECT CONVERT(VARCHAR, GETDATE(),..
[MSSQL] XML 데이터를 테이블 형태로 저장 (XML to DB) XML 데이터를 테이블에 입력해보자 70 T9KE211 2017-04-25 18:16:30 71 T9U0600 2017-04-25 18:16:30 위와 같은 XML 데이터를 테이블형태의 데이터로 만들어보자 /* 변수 선언 */ DECLARE @In_Xml VARCHAR(MAX) -- 데이터가 들어있는 XML 스트링 DECLARE @XML_OBJECT XML SET @In_Xml = N' 70 T9KE211 2017-04-25 18:16:30 71 T9U0600 2017-04-25 18:16:30 ' /* XML OBJECT로 컨버트 */ SET @XML_OBJECT = CONVERT(XML, @In_Xml) /* 파싱 */ SELECT x.XmlCol.value('(num/text())[1]', 'INT..
[MSSQL] JOIN CASE, JOIN OR 조건에 따라 조인테이블 및 조인조건 변경 조건에 따라 테이블 및 조인 조건을 변경해보자 TABLE1과 TABLE2를 조인하려고 한다. 이때 TABLE1의 COL1을 파라미터값 @Str 값에 따라 TABLE2의 COL1 혹은 COL2로 조인조건을 지정하려고 한다. 1) @Str의 값이 Y일 경우 TABLE1 COL1, TABLE2 COL1 2) @Str의 값이 N일 경우 TABLE1 COL1, TABLE2 COL2 첫번째 방법. JOIN CASE DECLARE @Str CHAR(1) = 'Y' -- 조건 구분값 (Y or N) SELECT * FROM TABLE1 A INNER JOIN TABLE2 B ON A.COL1 = CASE WHEN @Str = 'Y' THEN B.COL1 WHEN @Str = 'N' THEN B.COL2 END 두번째 ..
[MSSQL] OUTPUT INSERTED, DELETED 데이터 수정 및 삭제 전 백업 OUTPUT INSERTED, OUTPUT DELETED OUTPUT SELECT문과 달리 INSERT, UPDATE, DELETE문은 결과가 리턴되지 않는다. OUTPUT은 INSERT, UPDATE, DELETE 또는 MERGE 문의 영향을 받는 각 행의 정보 또는 각 행을 기반으로 하는 식을 반환 예제. INSERT 결과 데이터 리턴 #TEMP_T 테이블에 데이터를 입력해보자 INSERT INTO #TEMP_T (NAME, SCORE) VALUES('A', 100) 위의 쿼리를 수행하면, (1개 행이 영향을 받음)과 같은 메시지를 출력한다. 하지만, 나는 내가 입력시킨 데이터의 값을 리턴시키고싶다. INSERT INTO #TEMP_T (NAME, SCORE) OUTPUT INSERTED.* VALU..

반응형