본문 바로가기
백엔드/SQL

[SQL] built-in-functions

by leejiwoo21 2021. 12. 1.

 

@@TEXTSIZE : textsize의 현재 값을 반환

예시)

select @@textsize

>> 4096 (default 값)


set TEXTSIZE 2048

select @@textsize

>> 2048

 

 

 

 

@@ DATEFIRST : 설정된 datefirst 값을 반환

예시)

set datefirst 3

go

select @@datefirst -- 3 (wednesday)

go


set datefirst 2 -- 화요일이 기준

select @@datefirst as 'first day',

datepart(dw, sysdatetime()) as 'today'

go
 

출력

오늘은 화요일 >> today = 1

 

 

 

@@SERVERNAME : SQL을 사용중인 local server의 이름을 반환

예시)

select @@servername as 'Server Name'

출력

 

 

 

@@VERSION : SQL server 버전을 반환

예시)

select @@version as ' SQL Server Version'

출력

 

 

 

GETDATE() : SQL서버의 현재 날짜를 datetime타입으로 반환

예시)

select GETDATE() as 'date'

출력

 

 

 

GETUTCDATE() : SQL서버의 현재 날짜를 반환 ( datetime 타입 아님)

예시)

select GETUTCDATE()

출력

 

 

 

DATEDIFF(datepart, startdate, enddate) : enddate와 startdate 사이의 차이를 입력한 datepart 단위로 반환

datepart : yy(year), mm(month), dd(day), dy(dayofyear), wk(week), hh(hour), mi(minute), ss(second) 등

예시)

SELECT DATEDIFF(year,        '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(quarter,     '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(month,       '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(dayofyear,   '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(day,         '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(week,        '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(hour,        '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(minute,      '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');
SELECT DATEDIFF(second,      '2005-12-31 23:59:59.9999999', '2007-01-01 00:00:00.0000000');

출력

 

 

 

DATEADD(datepart, number, date) : date의 datepart부분에 number를 더한 날짜를 반환

예시)

select DATEADD(year, 3, '20060830')
select DATEADD(month, 3, '20060831')

출력

 

 

 

CONVERT(dataType, 변경대상, [변경형태]) : 대상의 타입을 변경한다.

 

 

날짜를 추출하는 함수

DATENAME(datepart, date) : date에서 datapart 부분을 nvarchar타입으로 반환

DATEPART(datepart, date) : date에서 datapart 부분을 int타입으로 반환

DAY(date) : date에서 day를 int타입으로 반환

MONTH(date) : date에서 month를 int타입으로 반환

YEAR(date) : date에서 year를 int타입으로 반환

 

 

 

Mathematical Funcions : input값을 받아서 계산하고 숫자를 반환

 

ABS(number) : number의 절댓값을 반환

RAND([seed]) : 0~1 사이의 랜덤값을 반환

ROUND(number, n) : number의 소수점 n번째 자리까지 표현, n에 음수도 넣을 수 있다.

CEILING(n) : n보다 크거나 같은 최소 정수 반환

FLOOR(n) : n보다 작거나 같은 최대 정수를 반환

SIGN(n) : n이 양수이면 1, 0이면 0, 음수이면 -1을 반환

SQRT(n) : n의 제곱근을 반환

SQUARE(n) : n의 제곱을 반환

 

 

 

String Function

 

 

SUBSTRING(str, position, n) : str에서 position 위치에서부터 n개의 문자열을 반환

예시)

declare @string char(8), @position int
set @string = 'Moon'
set @position = 1
print substring(@string, @position,2)

출력

>> Mo

 

 

 

CHARINDEX(str1, str2) : str2에서 str1의 위치를 찾아 반환

예시)

declare @document varchar(64)
set @document = 'abc def ghi jkl nmo'
print charindex('ghi',@document)

출력

>> 9

 

 

 

CONCAT(str1, str2,...) : 입력받은 문자열을 합친 문자열을 반환

예시)

declare @document varchar(64)
set @document = 'abc def ghi jkl nmo'
set @document = concat(@document, 'aaaaa')
print @document

출력

>> abc def ghi jkl nmoaaaaa

 

 

 

CONCAT_WS(string, str1, str2, str3,...) :  str1, str2, str3 사이에 입력받은 string을 넣고 합친 문자열을 반환

예시)

print concat_ws('-','010','1234','5678')

출력

>> 010-1234-5678

 

 

 

LEFT(str, n) : 입력받은 str의 왼쪽부터 n개의 문자를 반환

예시)

print left('abcdefg',2)

출력

>> ab

 

 

 

LTRIM(str) : 문자열의 왼쪽 공백을 삭제

예시)

declare @space_str varchar(40)
set @space_str = '       aaabbb'

print @space_str
print LTRIM(@space_str)

출력

       aaabbb
aaabbb

 

 

 

 

PATINDEX( '%pattern%', str ) : str안에서 pattern을 찾고 위치를 반환

예시)

print PATINDEX('%cde%','abcdefg')

출력

>> 3

 

 

 

REPLACE(str1, str2, str3) : str1에서 str2를 찾아서 str3로 교체 후 반환

예시)

print REPLACE('abcdefabcdefabc','abc','OOO')

출력

>> OOOdefOOOdefOOO

 

 

 

 

REPLICATE(str, n) : str을 n번 반복한 문자열을 반환

예시)

print REPLICATE('ABC',5)

출력

>> ABCABCABCABCABC

 

 

 

STRING_SPLIT(str, seperator) : str을 seperator로 나눈 여러개의 문자열 반환

예시)

declare @str varchar(40)
set @str = 'aaa,bbb,ccc,ddd'

select *
from string_split(@str,',')

출력

 

 

 

STUFF(str1, n, m, str2) : str1에서 n번째 위치부터 m개의 문자를 삭제하고 str2를 삽입한 후 반환

예시)

print STUFF('abcdefghijk',3,4,'xxxx')

출력

>> abxxxxghijk

 

 

 

 

ASCII(c) : 문자 c의 아스키코드를 반환

CHAR(n) : 아스키코드 n번의 문자를 반환

LOWER(str) : str을 소문자로 반환

UPPER(str) : str을 대문자로 반환

UNICODE(c) : 문자 c의 유니코드를 반환

REVERSE(str) : str을 뒤집어서 반환

RTRIM(str) : 문자열의 오른쪽 공백을 삭제

'백엔드 > SQL' 카테고리의 다른 글

[SQL] Begin ... END  (0) 2021.12.01
[SQL] 주석 달기  (0) 2021.12.01
[SQL] Batch와 Go  (0) 2021.12.01
[SQL] 변수 선언과 할당  (0) 2021.12.01
[SQL] (1 rows affected) 안 보이게 하기  (1) 2021.12.01

댓글