본문으로 바로가기
반응형

 

 

MSSQL 함수 사용 및 예문들입니다.


많이 쓰지 않는 함수에 대해서 저도 그렇고 많은 분들이 사용법이 햇갈리실것입니다.


나름데로 정리해보았습니다.


기존에 블러그에 정리한 내용을 바탕으로 작성했습니다.


참고로 환경은 MSSQL2005입니다


※ 문자열 함수 정리


1)  Ascii() - 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer)

예) SELECT Ascii('abcd')

    >>  결과는 a의 아스키 코드값인 97 반환


2) Char() - 정수 아스키 코드를 문자로 반환(Char)

예) SELECT Char(97)

      >> 결과는 a 반환


3) Charindex() - 문자열에서 지정한 식의 위치를 반환

예)  SELECT Charindex('b','abcde')   >> 결과 : 2
      SELECT Charindex('b','abcde',2) >> 결과 : 2
      SELECT Charindex('b','abcde',3) >> 결과 : 0 

       -- 인수값이 3개일때 마지막은 abcde 에서의 문자열 검색 시작위치를 말하며

            2인경우는 bcde 라는 문자열에 대해서 검색

            3인 경우는 cde 라는 문자열에 대해서 검색 하게 된다.


4) Difference() - 두 문자식에 SUONDEX  값 간의 차이를 정수로 반환

예)  SELECT Difference('a','b')


5) Left() - 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환

예)  SELECT Left('abced',3)       결과 >> 3


6) Len() - 문자열의 길이 반환

예) SELECT Len('abced')         결과>>5


7) Lower() - 대문자를 소문자로 반환

예) SELECT Lower('ABCDE')    결과 >> abcde


8) Ltrim() - 문자열의 왼쪽 공백 제거

예)  SELECT Ltrim('   AB  CDE')    결과>> AB CDE


9)Nchar()  - 지정한 정수 코드의 유니코드 문자 반환

예)  SELECT Nchar(20)       결과  >> 



10) Replace -  문자열에서 바꾸고 싶은 문자 다른 문자로 변환

예) SELECT Replace('abcde','a','1')    결과>>1bcde


11) Replicate()  - 문자식을 지정한 횟수만큼 반복

예) SELECT Replicate('abc',3)              결과>> abcabcabc


12) Reverse() - 문자열을 역순으로 출력

예)   SELECT Reverse('abcde')             결과>> edcba


13) Right()  - 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )

예) SELECT Right('abcde',3)                 결과>> cde


14)Rtrim()  - 문자열의 오른쪽 공백 제거

예) SELECT Rtrim(' ab cde  ')               결과>>  ' ab cde'  <-- 공백구분을위해 ' 표시


15)  Space()  -  지정한 수만큼의 공백 문자 반환

예)  SELECT Space(10)                  결과 >>  '         '   -- 그냥 공백이 나옴

      확인을 위해서  SELECT 'S'+Space(10)+'E'   결과 >> S        E  


16) Substring()  -  문자,이진,텍스트 또는 이미지 식의 일부를 반환

예) SELECT Substring('abcde',2,3)      결과>>  bcd


17)Unicode() - 식에 있는 첫번째 문자의 유니코드 정수 값을 반환

예)SELECT Unicode('abcde')              결과 >> 97


18)Upper() - 소문자를 대문자로 반환

예) SELECT Upper('abcde')              결과>> ABCDE


※ 기타 함수 Tip


19) Isnumeric - 해당 문자열이 숫자형이면 1 아니면 0을 반환

>> 숫자 : 1  , 숫자X :0

예) SELECT Isnumeric('30')       결과 >> 1

     SELECT Isnumeric('3z')        결과 >> 0


20) Isdate()  - 해당 문자열이 Datetime이면 1 아니면 0
>> 날짜 : 1   , 날짜 X :0

예) SELECT Isdate('20071231')    결과 >> 1

     SELECT Isdate(getdate())      결과 >> 1
     SELECT Isdate('2007123')      결과 >> 0

     SELECT Isdate('aa')             결과 >> 0



※ 날짜및 시간함수 정리


getdate()  >> 오늘 날짜를 반환(datetime)


1> DateAdd()   - 지정한 날짜에 일정 간격을 + 새 일정을 반환

예) SELECT Dateadd(s,2000,getdate())


2> Datediff()  - 지정한 두 날짜의 간의 겹치는 날짜 및 시간 범위 반환

예)SELECT DateDiff(d,getdate(),(getdate()+31))


3> Datename() -지정한 날짜에 특정 날짜부분을 나타내는 문자열을 반환

예) SELECT Datename(d,getdate())


4> Datepart() -지정한 날짜에 특정 날짜부분을 나타내는 정수를  반환

예) SELECT Datepart(d,getdate())


>> Datename , Datepart 은 결과 값은 같으나 반환 값의 타입이 틀림.


5> Day() -지정한 날짜에 일 부분을 나타내는 정수를  반환

예) SELECT Day(getdate())      -- 일 반환

     SELECT Month(getdate())   -- 월 반환

       SELECT Year(getdate())           --  년 반환

 

6> Getutcdate() -현재 UTC 시간을 나타내는 datetime 값을 반환

예) SELECT Getutcdate()

[출처] 노르웨이숲님의 이글루

반응형