728x90
내장함수
2001. 01. 10
문자열함수 / 날짜함수 / 기타 함수

 

문자열 함수

함수 내용 예제

Asc

(문자열)
첫번째 문자의 ANSI문자 코드 반환

asc(A) => 65
asc(a) => 97

Chr

(아스키문자)
ANSI 문자 코드와 관련된 문자 반환

chr(65) => A

InStr

(문자열1, 문자열2)
문자열1에서 문자열2의 위치를 반환.

instr ("abcdef" , "d" ) => 4

InStrRev

(문자열1, 문자열2)
instr와 같지만 검색을 뒤에서부터 검색한다.

instrRev( "abcdef", "d" ) =>4

Len

(문자열)
문자열의 길이

Len("abcdef" ) => 6

Left

(문자열, 크기)
왼쪽부터 크기만큼 추출

Left ("abcdef" , 2 ) => ab

Mid

(문자열,추출할 시작위치,크기)
추출할 위치로부터 크기만큼 중간 문자를 추출

Mid ("abcdef" , 3, 2) => cd

Right

(문자열, 크기)
오른쪽부터 크기만큼 추출


right ("abcdef", 3) =>def

Trim

(문자열)
앞, 뒤에 있는 공백을 제거


Trim(" abcdef " ) => "abcdef"

RTrim

(문자열)
오른쪽 공백 제거

RTrim("abcdef " ) => "abcdef"

LTrim

(문자열)
왼쪽 공백 제거

LTrim(" abcdef" ) => " abcdef"

StrComp

(문자열1, 문자열2) 문자열 비교
문자열1이 문자열보다 작은경우 -1, 같은경우 0, 큰경우 1, 둘 중하나가 Null 인경우 null값을 반환.

StrComp("ab", "AB" ) => 1
StrComp("ab", "ab" ) => 0

StrReverse (문자열)
문자열을 역순으로 반환
StrReverse("abcdef") => fedcba
Split (문자열, 구분자, 개수 )
구분자로 개수만큼 앞에서부터 잘라내 첨자가 0부터 시작하는 1차원 배열을 만든다.
a = Split("ab/cd/ef", "/") =>
a(0)="ab" a(1)="cd" a(2)="ef"
Replace (문자열,찾을문자열,바꿀문자열)
문자 치환하기. 바꿀 문자를 찾아서 모두 바꾸기 한다.
Replace("abcdef", "c","v") =>
abvdef

LCase

(문자열) 소문자로 전환

Lcase("ABCDEF") => abcdef

UCase

(문자열) 대문자로 전환

UCase("abcdef") => ABCDEF

 


날짜/시간 함수

시스템 날짜, 시간에 관련된 함수

함수 내용 예제

Date

date 시스템 날짜. 사용자의 현재 날짜

date => 2001-1-5

Day

day(date) 현 날짜에서 일자만 추출

day(date) => 5

Month

month(date) 날짜 수식에서 월

month(date) => 1

Year

Year(date) 날짜 수식에서 연도 표시

Year(date) => 2001

Time

time 시스템 시간

time => 10:25:40

Hour

hour(time)
시간

hour(time) => 10

Minute

Minute(time) 분

Minute(time) => 25

Second

second(time) 초

second(time) => 40

Now

now 시스템의 날짜와 시간

now => 2001-1-5 10:25:40

Weekday

Weekday(date) 요일
1:일요일~7:월요일

Weekday(date) => 4

weekdayname weekdayname(date)
요일을 문자열로 반환
weekdayname(Weekday(date)) => 수요일
DateAdd 현날짜에 일,월,연도를 대상으로 일자를 추가 dateadd("d", 10, date) => 2001-1-15
DateDiff 두 날짜사이의 간격을 일,월,연도로 계산 datediff ("d", #2001-01-1#,
#2001-01-24#) => 13
DatePart 현날짜에서 일,월,연도를 반환 datepart("d", date) => 5

 

DateAdd(interval, number, date)

지정된 날짜에 시간을 추가하거나 뺀 새로운 날짜를 반환한다

  • 인수

interval : 날짜나 시간의 다양한 기준을 설정하는 인수로 자세한 내용은 다음과 같다.
(yyyy 년 , q 분기 , m 월 , y 일(일년 기준) , d 일 , w 요일 , ww 주(일년 기준) ,h 시 ,n 분 , s 초 )

number : 추가할 날짜나 시간의 수로써 양수는 미래의 날짜, 음수는 과거의 날짜이다.
date : 기준 날짜

  • ex) 사용예

<%
Response.Write "오늘날짜 : " & Date & "<BR>"
Response.Write "오늘날짜+3개월 : " & DateAdd("m",3,Date) & "<BR>"
Response.Write "오늘날짜-3개월 : " & DateAdd("m",-3,Date) & "<BR>"
%>

 

DateDiff (interval, date1, date2)

주어지는 두 날짜의 간격을 반환한다

  • 인수 설명

interval : 날짜나 시간의 다양한 기준을 설정하는 인수로 자세한 내용은 다음과 같다.
( yyyy 년 , q 분기 , m 월 , y 일(일년 기준) , d 일 , w 요일 , ww 주(일년 기준) ,h 시 ,n 분 , s 초 )

date1, date2 : 두 날짜사이의 간격에 사용할 두 날짜이다.

  • ex) 사용예

<%
FirstDate = CDate("2001년 1월 1일")
MyDate = Date

Response.Write FirstDate & "부터 지금까지 " & DateDiff("y", FirstDate, MyDate) & "일 경과 <BR>"
Response.Write FirstDate & "부터 지금까지 " & DateDiff("h", FirstDate, MyDate) & "시 경과 <BR>"
%>

 

DatePart(interval, date)

주어진 날짜의 지정된 부분을 반환한다.

  • 인수 설명

interval : 날짜나 시간의 다양한 기준을 설정하는 인수로 자세한 내용은 다음과 같다.
( yyyy 년 , q 분기 , m 월 , y 일(일년 기준) , d 일 , w 요일 , ww 주(일년 기준) ,h 시 ,n 분 , s 초 )

date : 필수적인 인수로 계산할 날짜식이다.

  • ex) 사용예

<%
Response.Write "오늘 " & now & "은 " & DatePart("q", now ) & "분기 입니다."
%>

 

 


수학 함수

함수 내용 예제
Round (수치,소수점이하자리)
반올림하여 지정한 자리까지 표기
Round ( 1234.567 , 2 ) => 1234.57
Round ( 1234.567 ) => 1235
Rnd 난수 발생 0.00000 ~ 0.999999 사이의 난수를 반환 Rnd() => 0.533434
Fix (숫자) 정수 변환 Fix (123.45) => 123
Int (숫자) 정수 변환 int (123.45) => 123
Eval (식) 주어진 식의 결과를 얻는다. Eval (" 10 + 5" ) => 15 
Abs (숫자) 수의 절대값 반환 Abs(-10.5) => 10.5
Hex (숫자) 16진수 값을 반환 Hex(15) => f
Oct (숫자) 8진수 값을 반환 Oct(8) => 10
Sgn (숫자) 수의 부호를 반환
양수는 1, 음수는 -1, 0은 0의 값을 반환
Sgn(-10) => -1
Atn 아크탄젠트  
Cos 코사인  
Tan 탄젠트  
Sin 사인  
Exp 거듭제곰하는 자연로그의 밑인 e 를 반환 Exp(1.3)
Log 자연로그를 반환 Log(10)
Sqr 제곱근 Sqr(4) => 2

 

Rnd 함수

램덤함수로 무작위 0~ 1사이의 수를 추출한다. 램덤함수를 새로고침할때마다 새로운 수를 추출하기위해서는 Randomize 를 선언 후 사용한다.

  • 사용예 ) 1~6 사이의 정수를 난수 발생하려먼

Randomize ' 랜덤함수 전에 선언한다.
Int ( Rnd() * 6 + 1)

* 범위 내에서 난수 발행 공식 : a = Int((큰수 - 작은수 + 1) * Rnd + 작은수 )

 

Fix, Int, Cint 함수 비교

Int 함수와 Fix 함수는 양수에서는 차이가 없지만 음수일경우 Int는 작은수에 가까운 정수를 반환하고 Fix는 큰수에 가까운 정수를 반환한다. Cint는 반올림하여 정수로 반환한다.

Fix Int Cint
3.6 3 3 4
3.2 3 3 3
3 3 3 3
-3.6 -3 -4 -4
-3.2 -3 -4 -3

 

 


기타 함수

Format 함수

함수 내용 예제
formatnumber 소숫점이하자리수 지정, 0표시여부, 음수괄호사용여부, 3자리마다 콤마여부 formatnumber(0.1234, 3,0,0,0)
=> 0.123
formatcurrency 화폐형으로 formatcurrency(12345)
=> \12,345
formatpercent 백분율 formatpercent(0.7256)
=> 72.56%
formatdatetime 날짜와 시간의 다양한 표현 형식 formatdatetime(0)
=> 01-01-14 오후 10:37:32

 

  • formatnumber (수치, 소숫점 이하자리수, 0표시여부, 음수괄호사용여부, 3자리마다 콤마 여부)
0표시, 음수괄호사용, 콤마사용 여부값은 논리값으로 true( -1) , false( 0) 값을 사용.
  • formatcurrency(수치)

통화형으로 변환

ex) 사용예

<%
su1 = 1234567
su2 = .12345
su3 = -1234.567
response.write formatnumber(su2, 2, 0, 0, 0) & "<br>"
response.write formatnumber(su2, 2 , -1, 0, 0) & "<br>"
response.write formatnumber(su3, 2, 0, -1, 0) & "<br>"
response.write formatnumber(su1, 0, 0, 0, -1) & "<br>"
response.write formatcurrency(su1) & "<br>"
%>

  • FormatPercent (수치, 소숫점 이하자리수, 0표시여부, 음수괄호사용여부, 3자리마다 콤마 여부)

뒤에 % 문자가 붙는 백분율(100이 곱해짐)로 서식화된 식을 반환한다.
FormatPercent의 구성요소는 FormatNumber와 동일하다.

ex) 사용예

<%
Response.Write FormatPercent ( 0.7235) & "<BR>"
Response.Write FormatPercent ( 0.7235,1) & "<BR>"
Response.Write FormatPercent ( -0.7235, 1 , 0, -1) & "<BR>"
%>

  • formatdatetime (날짜, format type)

다양한 날짜와 시간의 포맷형식

[ 포맷 형식 ]

종류 내용
vbGeneralDate 0 컴퓨터의 국가별 설정에서 일반 날짜 또는 시간 표시
vbLongDate 1 컴퓨터의 국가별 설정에서 자세하게 날짜 표시
vbShortDate 2 컴퓨터의 국가별 설정에서 간단하게 날짜 표시
vbLongTime 3 컴퓨터의 국가별 설정에서 자세하게 시간 표시
vbShortTime 4 컴퓨터의 국가별 설정에서 간단하게 시간 표시

ex) 사용예

<%
response.write formatdatetime(now,vbgeneraldate ) & "<br>"
response.write formatdatetime(now, 1) & "<br>"
response.write formatdatetime(now, vblongtime) & "<br>"
%>

배열 관련

함수 내용 예제
LBound (배열명, 차원)
배열의 첨자 하한값 구하기
1차원은 LBound(배열명), 2차원은 LBound(배열명, 차원)
Dim myarr ( 5 )
a= LBound(myarr) => 0
Dim myarr ( 5, 7 )
a= LBound(myarr, 2) => 0
UBound (배열명, 차원)
배열의 첨자의 상한값 구하기
1차원은 UBound(배열명), 2차원은 UBound(배열명, 차원)
Dim myarr ( 5 )
a= UBound(myarr) => 5
Dim myarr ( 5, 7 )
a= UBound(myarr, 1) => 5
a= UBound(myarr, 2) => 7
  • 사용예)

Dim a(5)
a(1) = 1 : a(2) = 2 : a(3) = 3 : a(4) = 4 : a(5) = 5
for i =1 to Ubound(a)
response.write a(i)
next

 

데이타 타입 판별

함수 내용 예제
IsNull (변수 or 수식)
널(Null) 여부
isNull ( a ) => false
IsNumeric (변수 or 수식)
숫자 형식 여부.
isNumeric(5) => true
Isobject 객체 형식 여부.  
IsDate 날짜 형식 여부. isDate(#2001-1-10#) => true
IsArray 배열 형식 여부. Dim b(5)
isArray(b) => true
IsEmpty 초기화 여부 isempty(a)

 

[출처] ASP 함수모음 ASP |작성자 여유

728x90

'프로그래밍 > asp' 카테고리의 다른 글

ASP 정규 표현식 사용법  (0) 2012.10.04
[ASP] 날짜 형식 함수 FormatDateTime  (0) 2012.08.17
ASP URLDecode 함수  (0) 2012.05.31
asp procesure parameter 형식  (0) 2012.05.28
web cache control  (0) 2012.05.24
728x90

읽기 일관성은 쿼리가 시작된 시점을 기준으로 데이터를 일관성 있게 읽어들이는 것을 말한다.

일관성을 높이려면 고립화 수준을 높여야 한다.

고립화란?

- 간단히 4가지 고립화를 설명하겠다 -

레벨 0

트랜잭션에서 처리 중인 아직 커밋되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용

(Dirty Read, Non-Repeatable Read, Phantom Read 현상 발생)

레벨 1

더티리드 방지 : 트랜잭션이 커밋되어 확정된 데이터만 읽는 것을 허용

대부분의 DBMS가 기본모드로 채택하고 있음

Non-Repeatable Read, Phantom Read 현상은 여전히 발생

오라클은 락을 사용하지 않고 Undo데이터를 제공하는 방식으로 구현

SQL Server 등은 읽기 공유 락을 이용해서 구현

레벨 2

선행 트랜잭션이 읽은 데이터는 트랜잭션이 종료 될 때까지 후행 트랜잭션이 갱신하거나 삭제하는 것을 불허함으로써 같은 데이터를 두번 쿼리했을 때 일관성있는 결과를 리턴

Phantom Read 현상은 여전히 발생

오라클은 for update절을 이용해 구현가능

레벨 3

선행 트랜잭션이 읽은 데이터를 후행 트랜잭션이 갱신하거나 삭제하지 못할 뿐만 아니라 중간에 새로운 레코드를 삽입하는 것도 막아줌

완벽한 읽기 일관성 모드를 제공

728x90

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MS SQL 외래키 지정  (0) 2012.09.10
MSSQL 테이블 소유자 변경  (0) 2012.09.05
MSSQL identity 값 초기화  (0) 2012.04.04
Foreign key 설정  (0) 2012.03.14
인터넷서점 모델링  (0) 2012.03.08
728x90

 

 

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

 

 

 

 

 

 

 

 

728x90
728x90

 

 

 

 

 

 

 

728x90

+ Recent posts