Sql Server 2012 변환 함수 비교(Cast,Convert,Parse)

2694 단어 CastConvertParse
문법 구조:1.Cast 문법 구조:CAST(expression AS datatype[(length)])2.문법 구조 변환:CONVERT(datatype[(length)],expression[,style])3.Parse 문법 구조:PARSE(stringvalue AS data_type[USING culture])에서 Parse 가 Sql Server 인 새로운 특성 expression 은 변 환 된 형식의 문자열 형식 성능 분석 을 해 야 합 니 다.요약:1.Convert 와 Cast 의 차이 점 CONVERT 는 SQL Server 에 만 사용 되 고 날짜 와 시간 값,소수 간 의 전환 이 더욱 넓 은 유연성 을 가 집 니 다.CAST 는 두 가지 기능 중에서 ANSI 표준 을 가 진 기능 이다.즉,더욱 휴대 성 이 있 지만(예 를 들 어 CAST 의 함 수 를 사용 하면 다른 데이터 베이스 소프트웨어 에 쉽게 사용 할 수 있다)기능 이 상대 적 으로 약 하 다.그러나 소수 가 수치 로 바 뀌 고 원시 표현 식 의 소수 수 치 를 보존 할 때 CAST 2 를 사용 해 야 합 니 다.Convert 와 Parse 의 차 이 는 문법 적 인 차 이 를 제외 하고 기능 상의 차이 입 니 다.Convert 기능 이 더욱 강하 고 Parse 는 Sql Server 2012 에 추 가 된 기능 이 며 기능 이 많이 약 합 니 다.문자열 을 숫자 형식 이나 날짜 형식 으로 만 변환 할 수 있 습 니 다.숫자 형식 이나 날짜 형식 길이 가 매우 작 기 때문에 Parse 가 가 져 온 성능 은 큰 변화 가 없 을 것 입 니 다.그 후에 저도 많은 비 교 를 했 는데 Parse 는 대부분 상황 에서 대체 할 수 있 는 3.종합 비교 a.Sql 서버 에 대한 개발 이 라면Convert 방법 b.구문 크로스 플랫폼 을 고려 하면 Cast 를 사용 하 는 것 을 권장 합 니 다.예 를 들 어 SQL 문 구 는 Sql Server 에서 실 행 될 수 있 고 MySql 에서 실 행 될 수 있 습 니 다.c.Parse 는 Sql Server 2012 에서 계 륵 입 니 다.1 오후 실전 연구 와 MSDN 을 뒤 져 보 았 지만 그 장점 을 찾 지 못 했 습 니 다.문법 보다 Cast 의 문법 구조 가 똑 같 으 면만약 에 기능 보다 너무 약 하고 Cast 와 Convert 와 비교 할 수 없 기 때문에 Parse 를 잊 어 버 리 세 요.성능 분석 에서 한 실험:1.Convert 와 Parse 를 문자열 로 바 꾸 는 비교
 
DBCC FreeProcCache
set statistics profile on
select top 1 parse(name as bigint) from test_Parse
select top 1 convert(bigint,name) from test_Parse
그 중에서 name 은 nvarchar(1000)의 한 단락 이 고 값 은 1231238912378912128 로 실 행 된 후에 이들 의 실행 계획 이 똑 같다 는 것 을 알 수 있 습 니 다.CPU 에 대한 소모 든 IO 에 대한 소모 든 아무런 성능 차이 가 없다.2.Money 와 DateTime 유형의 전환 비교
 
-- DateTime
DBCC FreeProcCache
declare @date varchar(100) = '2012/07/19 14:57:09.760'
select CONVERT(datetime,@date) as date
select Parse(@date as datetime using 'zh-CN') as date
--Money
SELECT PARSE('345,98' AS money USING 'de-DE') AS Result
Select Convert(money,'345,98',1) AS Result
Parse 의 특허,문자 형 날짜 부터 datetime 까지 의 전환
 
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'zh-CN') AS Result
-- Cast Convert
--SELECT cast('Monday, 13 December 2010' AS datetime2) AS Result
--SELECT Convert(datetime,'Monday, 13 December 2010') AS Result
성능 면 에서 도 별 차이 가 없 지만 기능 을 비교 할 때 Parse 는 Convert 보다 너무 많이 틀 렸 다 는 의심 이 든다.Parse 본인 은 많은 장점 과 응용 장면 을 찾 지 못 했 거나 본인 의 재능 이 부족 해서 더 좋 은 것 을 찾 지 못 했 습 니 다.아 는 것 이 있 으 면 가르쳐 주 십시오.

좋은 웹페이지 즐겨찾기