국가별 Transact-SQL 문 작성
다음 지침에 따라 Transact-SQL 문을 사용하는 데이터베이스 및 데이터베이스 애플리케이션을 특정 언어에서 다른 언어로 이식하거나 여러 언어를 지원하도록 할 수 있습니다.
,
varchar
및 데이터 형식의 모든 용도를char
,nvarchar
및nvarchar(max)
.로nchar
바꿉text
다. 이렇게 하면 코드 페이지 변환 문제를 고려할 필요가 없습니다. 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하십시오.월 및 요일 비교 및 작업을 수행하는 경우 이름 문자열 대신 숫자 날짜 부분을 사용합니다. 언어 설정이 다르면 월과 요일에 대해 각기 다른 이름이 반환됩니다. 예를 들어 DATENAME(MONTH,GETDATE())은 언어가 미국 영어로 설정되면 5월을 반환하고, 언어가 독일어로 설정되면 Mai를 반환하고, 언어가 프랑스어로 설정되면 mai를 반환합니다. 대신 이름이 아닌 해당 월의 숫자를 사용하는 DATEPART와 같은 함수를 사용합니다. 날짜 이름이 숫자 표시보다 의미를 쉽게 알 수 있으므로 사용자에게 표시되는 결과 집합을 만들 때에는 DATEPART 이름을 사용합니다. 그러나 특정 언어로 표시된 이름에 따라 달라지는 논리는 코딩하지 마십시오.
INSERT 또는 UPDATE 문을 위한 입력이나 비교를 위해 날짜를 지정할 때 모든 언어 설정에서 동일하게 해석되는 상수를 사용하십시오.
ADO, OLE DB 및 ODBC 애플리케이션은 다음과 같은 ODBC용 타임스탬프, 날짜 및 시간 이스케이프 절을 사용해야 합니다.
{ ts'yyyy- mm-ddhh:mm:ss[.fff] '} 예: { ts'1998- 09-24 10**:02:20' }**
{ d' yyyy - mm - dd '} 예: { d'1998- 09-24**'}**
{ t' hh : mm : ss '} 예: { t'10:02:20'}
다른 API나 Transact-SQL 스크립트, 저장 프로시저, 트리거를 사용하는 애플리케이션에서는 분리되지 않은 숫자 문자열을 사용해야 합니다. 예를 들어 19980924와 같은 yyyymmdd 를 사용합니다.
다른 API 또는 Transact-SQL 스크립트, 저장 프로시저 및 트리거를 사용하는 애플리케이션은 , ,
date
,smalldate
datetime
datetime2 및 데이터 형식 및 문자열 데이터 형식 간의time
모든 변환에 대해 명시적 스타일 매개 변수와datetimeoffset
함께 CONVERT 문을 사용해야 합니다. 예를 들어 다음 문은 모든 언어 또는 날짜 형식 연결 설정에서 똑같이 해석됩니다.SELECT * FROM AdventureWorks2012.Sales.SalesOrderHeader WHERE OrderDate = CONVERT(DATETIME, '20060719', 101)
자세한 내용은 CAST 및 CONVERT(Transact-SQL)를 참조하세요.