MS SQL Server 2008에서 2012 이상으로 버전을 올려서 학습 중입니다.
일단 기본 제공되는 함수부터 먼저 알아보려 합니다.
- 기본 제공함수는 크게 행 집합, 집계, 순위, 스칼라 함수로 분류할수있다.
- 그중, 스칼라 함수: 단일 값에 적용되어 단일 값 결과를 돌려주는 함수들
기본 제공되는 스칼라 함수 종류는
구성 / 변환 / 커서 / 날짜 및 시간 / 논리 / 수치 연산 / 메타 데이터 / 보안 /
문자열 / 시스템 / 시스템 통계 / 텍스트 및 이미지 함수 등
으로 나눠 진다.
[구성 함수]
@@LANGID / @@LANGUAGE | 현재 설정된 언어의 코드번호 확인 한국의 경우 29이며, 타 언어의 ID는 sp_helplanguage 프로시저로 확인
ex) SELECT @@LANGID
|
@@SERVERNAME | 현재 인스턴스의 이름 알고자할때 |
@@SERVICENAME | 서비스 이름 확인 |
@@SPID | 현재 사용자 PS 세션 ID반환. ex) SELECT @@SPID, SYSTEM_USER, USER -- 세션 ID 번호, 로그인 사용자, 사용자 조회 |
@@VERSION | 현재 설치된 SQL Server의 버전, CPU종류, 운영체제 버전의 정보를 조회 |
[날짜 및 시간 함수]
SYSDATETIME() / GETDATE() | 현재 날짜와 시간 조회 SYSDATETIME()가 좀 더 자세한? 초 밑으로 6자리. GETDATE()는 3자리 |
DATEADD() | 날짜에 더한 결과 ex) SELECT DATEADD(DAY, 100, GETDATE()) -- 현재 날짜에 100을 더한 결과 조회. day, year, month, week, hour, minute, second 등이 올 수 있다 |
DATEDIFF() | 두 날짜의 차이 조회 ex) SELECT DATEDIFF(week, getdate(), '2011/01/01') -- 과거는 음수 리턴 SELECT DATEDIFF(week, getdate(), '2021/01/01') -- 미래는 양수 리턴 |
DATENAME() | 지정된 날짜의 년 / 월 / 일 조회 ex) select DATEPART(year, getdate()) -- 현재의 연도 리턴 / select DATEPART(MONTH, '2016/5/15') -- 지정된 날짜의 월 리턴 |
DAY(), MONTH(), YEAR() | 지정된 날짜의 일/월/년을 조회 |
*** MS SQL SERVER 2012부터 제공되는 함수들 ***
DATEFROMPARTS() DATETIME2FROMPARTS() DATETIMEFROMPARTS() DATETIMEOFFSETFROMPARTS() SMALLDATETIMEFROMPARTS() TIMEFROMPARTS() |
문자열을 각각 입력하면 해당하는 데이터형식 값 리턴 ex) SELECT DATEFROMPARTS('2015','01','03') -- '2015-01-03' 리턴 |
EOMONTH() | 입력한 날짜에 포함된 달의 마지막 날 리턴 (End Of Month ?) ex) select EOMONTH(getdate()), EOMONTH(getdate(), 3) -- 2016-01-31 2016-04-30 . 오늘부터 3개월이후 |
[수치 연산 함수]
ABS() | 절댓값 리턴 |
ROUND() | 자릿수 & 반올림 ex) SELECT ROUND(12345.56667, 2) -- 12345.57000 -- 2 자릿수 밑에서 반올림 |
RAND() | 0~1까지의 임의 숫자 리턴 ex) select RAND() -- 0.880775157154615 --임의(Random)값 리턴 |
SQRT() | 제곱근 값 리턴 ex) select SQRT(10) -- 3.16227766016838 |
POWER() | 거듭제곱 리턴 ex) select POWER(3, 2) -- 9 (3의 2제곱근. 9) |
그 외 DEGREES, ACOS, EXP, ASIN, FLOOR, SIGN, ATAN, LOG, SIN, ATN2, LOG10,
CEILING, PI, SQUARE, COS, TAN, COT, RADIANS 등
'프로그래밍&IT > SQL Server (MS-SQL)' 카테고리의 다른 글
WITH 절 CTE (Common Table Expression) 임시테이블? (0) | 2016.04.03 |
---|---|
[MS SQL SERVER 2012 학습] 스칼라 함수 (2) (0) | 2016.01.18 |
[MS SQL] 문자열 함수 (2008 R2 버전으로) (0) | 2014.11.08 |
[MS-SQL] 산술 연산 함수 (0) | 2014.11.01 |
[MSSQL] 자료형 (Data type) (0) | 2014.11.01 |