MS-SQL 22

[MS-SQL] 테이블 및 컬럼 Description 및 정보 가져오기

MS-SQL에 저장되어 있는 Table과 Column의 설명 및 정보를 가져와보자.다른 DB도 마찬가지겠지만 (오라클은 있었던걸로 기억...)아무튼 DB자체에도 테이블과 컬럼의 설명을 넣을수 있도록 되어 있다.개인적으로는 문서로 만들어 놓는거 보다(실컷 문서를 뒤졌는데 새롭게 추가된 컬럼이였으면 안적혀있을때가 많다...)그냥 필요할때 검색해서 보면 되니 DB자체 Description을 더 선호한다.DECLARE @TABLE_NAME NVARCHAR(50) = '테이블이름';SELECT D.COLORDER AS COLUMN_IDX -- Column Index , A.NAME AS TABLE_NAME ..

DBMS/MS-SQL 2019.04.05

[MS-SQL] 날짜, 시간차이 구하기 (DATEDIFF)

MS-SQL에서 두개의 날짜사이의 차이값을 구해보자.DATEDIFF() 함수는 두날의 차이를 int로 반환하는 Mssql 내장함수이다.단순히 차이나는 일수뿐만 아니라 년도 차이나 시간 차이 혹은 몇주차인지도 확인할수 있다. SELECT DATEDIFF('구분자','Start_Date','End_Date')DATEDIFF()는 총 3개의 인수가 있는데 Start_Date와 End_Date는 차이를 구할 두개의 날짜값을 넣는곳이고 '구분자'는 어떤차이를 구할지 정해주는 부분이다.예를 들어 두 날짜사이의 일자 차이를 구하고 싶으면 'day' 혹은 'dd'등을 넣어주면 된다.만약 2018년의 전체 일수를 구하는 쿼리문을 적는다면 SELECT DATEDIFF(dd,'2018-01-01','2018-12..

DBMS/MS-SQL 2018.06.14

[MS-SQL] 현재 날짜, 시간 구하기 (GETDATE())

SQL Server의 현재 날짜와 시간을 구해보자.MS-SQL에는 오라클의 SYSTIME과 동일한 기능의 함수가 여러개 있다.그중 현재 날짜와 시간을 가져오는 대표적인 함수는 GETDATE()이다. SELECT GETDATE()결과 : 2018-06-12 16:05:28.078날짜만 가져오고 싶을경운 CONVERT와 함께 date형태로 가져오면된다. SELECT CONVERT(date,GETDATE())결과 : 2018-06-12시간만 가져오고 싶을경우는 CONVERT와 함께 time형태로 가져오면된다. SELECT CONVERT(time,GETDATE())결과 : 16:05:28.0780000그외 SYSDATETIME(), SYSDATETIMEOFFSET, SYSUTCDATETIME()..

DBMS/MS-SQL 2018.06.12

[MS-SQL] 특정 기간 범위 구하기

MS-SQL 쿼리로 특정 기간의 시작 시간과 마지막 시간를 구해보자.SQL Server에서 오늘 혹은 이번주, 이전달, 내년, 이번분기 등등 특정 범위를 구해야할 경우가 많다.그럴경우 아래와 같은 쿼리로 쉽게 구할수 있다. SELECT DATEADD('형식', DATEDIFF('형식', 0, GETDATE()),0) --시작 날짜&시간 SELECT DATEADD(MS,-3,DATEADD('형식', DATEDIFF('형식', 0, GETDATE()),0)) --종료 날짜&시간DATEADD()함수와 DATEDIFF()함수를 이용하여 '형식(DD,MM,YY 등)'에 따라 시작시간과 종료시간을 구할수 있다.아래 일별, 주별, 월별, 분기별, 년별 시작 시간과 ..

DBMS/MS-SQL 2018.06.11

[MS-SQL] 특정 일자 요일 구하기

MS-SQL에서 요일을 구해보자.SQL Server에서 특정일자의 요일을 구하고 싶을 때 DATENAME 혹은 DATEPART 함수를 사용하면 된다.SELECT DATENAME(WEEKDAY,GETDATE())DATENAME의 경우 SQL Server의 언어설정에 따라 한국어일경우 '월요일', '화요일'로 표기되지만영어일경우 'Monday', 'Tuesday' 처럼 표기되기 때문에 실제론 DATEPART를 많이 사용한다.SELECT DATEPART(WEEKDAY,GETDATE())DATEPART는 일요일 시작으로 순서대로 1(일),2(월),3(화),4(수),5(목),6(금),7(토)로 출력해준다.필자는 보통 '월요일' 전체를 가져오기보단 '(월)' 이런식으로 가져오기 때문에아래와 같은 쿼리 혹은 Func..

DBMS/MS-SQL 2018.06.08

[MS-SQL] [Datetime To Varchar] 날짜를 일정형식의 문자로 만들기

Convert를 이용하여 MS-SQL에서 날짜를 컨트롤해보자.SQL Server에서 DateTime을 Varchar로 변경할때는 CONVERT()를 사용한다. CONVERT(['포멧'('길이')],['날짜'],['변환형식'])위와 같은 형식으로 사용되며 길이는 몇글자까지 가져올지를 나타내며 변환형식은 어떤 형식으로 가져올지를 나타낸다.아래 표를 참조하여 원하는 형식으로 가져오면 된다.(언어별, 버전별로 조금 다를수도 있다. 대충 이것저것 바꿔보면 원하는형식을 찾을수 있다.)필자는 표시해둔 112,120등을 짧게 가져오던지 아니면 Right()로 잘라서 많이 사용한다.예제 CONVERT([CHAR(8)],[GETDATE()],112) -- CONVERT([CHAR('길이')],[GETDATE()..

DBMS/MS-SQL 2018.06.07

[MS-SQL] Server 버전채크

Mssql의 버전을 알아보자.SQL Server를 관리할때 먼저 채크해야될 부분은 해당 DB의 Version이다.MS에서 배포한 주요 업데이트 확인과 백업, 복구시에 버전정보가 매우 중요하다.장애로 인한 복구시 MASTER DB의 빌드 번호와 복구 하려는 서버의 빌드 번호가 불일치시 오류가 발생하게 된다.버전은 아래 쿼리로 간단히 확인이 가능하다. SELECT @@VERSION @@VERSION은 스칼라 함수로 현재 서버의 구성 옵션 설정에 대한 정보를 반환해준다.위 쿼리 실행시 아래와 같은 결과를 확인할수 있다.Micorsoft SQL Server 2008 R2 (RTM) - 10.50.1765.0 (X64)  Feb 2 2011 17:33:22 Copyright (c) Microsoft Corp..

DBMS/MS-SQL 2018.06.05

[MS-SQL][Query] 데이터베이스 시간별 집계 테이블 채크 쿼리 (Hourly Table Check Query)

Hourly Data가 쌓이는 Table에 빠진 데이터가 있는지 확인해보는 쿼리를 만들어보자.※ fnStringToTable() 이라는 함수를 이용한다. 해당 함수의 자세한 내용은 아래 관련글 링크를 찾아가 확인 가능하다. -- 동적으로 최근 날짜별,시간별 데이터 채크 로직 -- ------------------------------------------ 설정값 DECLARE @ViewDay Integer = 1 -- 몇일전까지 보고 싶은지 DECLARE @ViewTable Varchar(max) = 'DB1.dbo.TABLE1, DB2.dbo.TABLE2'  -- 보고싶은 테이블 리스트 DECLARE @DateColumn Varchar(max) = 'updateTime' --..

DBMS/MS-SQL 2018.06.04

[MS-SQL][Query] 데이터베이스 일별 집계 테이블 채크 쿼리 (Daily Table Check Query)

Daily Data가 쌓이는 Table에 빠진 데이터가 있는지 확인해보는 쿼리를 만들어보자.※ fnStringToTable() 이라는 함수를 이용한다. 해당 함수의 자세한 내용은 아래 관련글 링크를 찾아가 확인 가능하다. -- 동적으로 최근 날짜별,시간별 데이터 채크 로직 -- ------------------------------------------ 설정값 DECLARE @ViewDay Integer = 1 -- 몇일전까지 보고 싶은지 DECLARE @ViewTable Varchar(max) = 'DB1.dbo.TABLE1, DB2.dbo.TABLE2'  -- 보고싶은 테이블 리스트 DECLARE @DateColumn Varchar(max) = 'updateTime' -- ..

DBMS/MS-SQL 2018.06.01

[MS-SQL][FUNCTION] String to Table 변환 함수 (Split)

MS-SQL에서 String Array을 Table로 변환시키는 함수(Split 기능)를 만들어보자.MS-SQL에서 프로시저를 만들다보면 가끔 String Array( ','로 구분되는 String 같은)를 테이블로 변환하면 편하게 진행할수 있을경우가 있다.(보통 WHILE을 돌릴때 혹은 재정렬이 필요할경우)그럴경우 아래 Function을 미리 정의해놓고 사용하면 편리하게 이용이 가능하다. CREATE FUNCTION fnStringToTable (@String Nvarchar(4000), @separator nvarchar(10)) RETURNS @re TABLE     (col nvarchar(100)) AS BEGIN   DECLARE @col Nvarchar(..

DBMS/MS-SQL 2018.06.01