본문 바로가기

Programming/MSSQL43

MSSQL 날짜 계산 함수 DATEADD, DATEDIFF DATEADD는 시간을 더해주는 함수이고 DATEDIFF는 두 시간의 차이를 리턴해주는 함수이다. 먼저 날짜를 더하는 시간이다.흔히 최근 6개월치만 조회하려고 할 떄 기준일자 >= DATEADD(DD,-6,GETDATE()) 이런식으로 짠다.해당 함수를 활용하여 월의 첫째 날, 월의 마지막 날 등을 구해보도록 하자. DATEADD 함수 - DATEADD(시간 단위, 더 할 수치, 기준 시간)- 첫번째 파라메터에는 DAY 대신에 DD, MONTH 대신에 MM, YEAR 대신에 YY를 쓸 수 있다. -- 1일 더하기SELECT DATEADD(DAY,1,GETDATE()) -- 1월 더하기SELECT DATEADD(MONTH,1,GETDATE()) -- 1년 더하기SELECT DATEADD(YEAR,1,GET.. 2018. 4. 21.
MSSQL tempDB 옮기기 MSSQL에서 디스크 관련 상황을 만나서 tempdb를 옮겨야 하는 경우가 발생할 수 있다.이때 tempdb를 옮기는 방법은 다음과 같다. 먼저 다음 쿼리를 활용해서 tempdb위치를 파악한다.SELECT name, physical_name AS CurrentLocation FROM sys.master_files WHERE database_id = DB_ID(N'tempdb'); GO 위의 결과를 보면 tempdb가 총 4개로 나뉘어져 있고 (1,3,4,5행) 이를 옮기는 방법은 다음과 같다.예를 들어서 H드라이브의 tempdata 폴더로 옮겨보자 USE master; ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'H:\TEMPDATA\t.. 2018. 4. 18.
MSSQL 숫자만 뽑아내기 MSSQL에서 전화번호 같은 테이블에서 숫자만 뽑아내는 함수이다.예를 들어서 010-0000-0000 -> 01000000000 으로.. 학생 테이블이 다음과 같이 있다고 치자. CREATE FUNCTION dbo.udf_GetNumeric(@strAlphaNumeric VARCHAR(256))RETURNS VARCHAR(256)ASBEGINDECLARE @intAlpha INTSET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)BEGINWHILE @intAlpha > 0BEGINSET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )SET @intAlpha = PATINDEX('%[^0-9]%', .. 2018. 4. 17.
MSSQL 인코딩 확인 및 변경 MSSQL에서는 COLLATION을 활용하여 인코딩을 변경할 수 있다. 테이블의 인코딩을 확인하는 쿼리는 다음과 같다. SELECT COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTHFROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'STUDENT' 인코딩을 변경하고 싶다면-- NAME 컬럼의 인코딩을 Latin1_General_CI_AS로 변경.ALTER TABLE STUDENT ALTER COLUMN NAME VARCHAR(30) COLLATE Latin1_General_CI_AS 인코딩 종류는 MS공식 문서에서 확인하자. 2018. 4. 17.