programing

T-SQL 캐스트와 변환

instargram 2023. 4. 7. 20:54
반응형

T-SQL 캐스트와 변환

언제 를 사용해야 하는지에 대한 일반적인 지침은 무엇입니까?CASTCONVERT둘 중 하나를 선택할 때와 다른 하나를 선택할 때 성능 문제가 있습니까?하나는 ANSI-SQL에 가깝습니까?

CONVERTSQL Server 고유,CASTANSI 입니다.

CONVERT날짜 형식을 지정할 수 있다는 점에서 더 유연합니다.그 외에는 거의 비슷합니다.확장 기능에 관심이 없는 경우CAST.

편집:

다음 코멘트에서 @beruic 및 @C-F에서 알 수 있듯이 암묵적인 변환(CAST 또는 CONVERT를 사용하지 않는 변환)을 사용하면 정밀도가 저하될 수 있습니다.자세한 내용은 CAST 및 CONVERT, 특히 이 그래픽: SQL Server 데이터 유형 변환 차트참조하십시오.이 추가 정보를 통해 원래의 조언은 그대로 유지됩니다.가능한 경우 CAST를 사용합니다.

변환에는 날짜에서 문자열로 변환하기 위한 스타일 매개 변수가 있습니다.

http://msdn.microsoft.com/en-us/library/ms187928.aspx

copied by Shakti 답변을 자세히 말씀드리면, 저는 실제로 두 기능의 성능 차이를 측정할 수 있었습니다.

질문에 대한 솔루션의 다양한 성능을 테스트하는 중 표준 편차와 최대 실행 시간이 더 큰 것을 발견했습니다.CAST.

실행 시간(밀리초) *유형의 정밀도에 따라 1/300초 단위로 반올림한 시간(밀리초 단위)

CAST는 표준 SQL이지만 CONVERT는 T-SQL 방언 전용입니다.datetime의 경우 변환에는 약간의 이점이 있습니다.

CAST에서는 식과 타깃유형을 나타냅니다.CONVERT에서는 변환 스타일을 나타내는 세 번째 인수가 있습니다.이 인수는 문자열과 날짜 및 시간 값 사이의 변환 등 일부 변환에서 지원됩니다.예를 들어 CONVERT(DATE, '1/2/2012', 101)는 미국 표준을 나타내는 스타일 101을 사용하여 리터럴 문자열을 DATE로 변환합니다.

아직 아무도 주목하지 못한 것은 가독성입니다.가지고 있는 것...

CONVERT(SomeType,
    SomeReallyLongExpression
    + ThatMayEvenSpan
    + MultipleLines
    )

…보다 이해하기 쉬울지도 모른다…

CAST(SomeReallyLongExpression
    + ThatMayEvenSpan
    + MultipleLines
    AS SomeType
    )

CAST는 ANSI 표준을 사용합니다.휴대성의 경우, 이것은 다른 플랫폼에서도 동작합니다.CONVERT는 SQL Server 전용입니다.하지만 매우 강력한 기능입니다.날짜에 대해 다른 스타일을 지정할 수 있습니다.

이 때 ㄴ, ㄴ는다는 하지 않는 이 좋습니다.CAST이치노 CAST(HASHBYTES('...') AS VARCHAR(32)) 않다CONVERT(VARCHAR(32), HASHBYTES('...'), 2)마지막 매개 변수가 없으면 결과는 동일하지만 읽을 수 없는 텍스트가 됩니다.할 수 .CAST.

언급URL : https://stackoverflow.com/questions/707335/t-sql-cast-versus-convert

반응형