답변:
CONVERT
SQL Server에 따라 다릅니다. CAST
ANSI입니다.
CONVERT
날짜 등의 형식을 지정할 수 있다는 점에서 더 유연합니다. 그 외에는 거의 동일합니다. 확장 기능에 관심이 없다면CAST
.
편집하다:
아래 주석에서 @beruic 및 @CF에서 언급 한 것처럼 암시 적 변환을 사용할 때 (CAST 나 CONVERT를 사용하지 않는 경우) 정밀도가 손실 될 수 있습니다. 자세한 정보는 CAST 및 CONVERT 및 특히이 그래픽 : SQL Server 데이터 유형 변환 차트를 참조하십시오 . 이 추가 정보를 통해 원래의 조언은 여전히 동일합니다. 가능하면 CAST를 사용하십시오.
Convert에는 날짜를 문자열로 변환하기위한 style 매개 변수가 있습니다.
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(Column1 AS int)
보다 읽기가 더 논리적입니다CONVERT(int, Column1)