ISDATE(Transact-SQL)
expression이 올바른 date, time 또는 datetime 값이면 1을 반환하고, 그렇지 않으면 0을 반환합니다.
모든 Transact-SQL 날짜/시간 데이터 형식 및 함수에 대한 개요는 날짜 및 시간 데이터 형식 및 함수(Transact-SQL)를 참조하십시오. 날짜/시간 데이터 형식 및 함수에 대한 자세한 내용과 일반적인 예는 날짜 및 시간 데이터 사용을 참조하십시오.
구문
ISDATE ( expression )
반환 형식
int
주의
ISDATE는 CONVERT 함수와 함께 사용하고 CONVERT 스타일 매개 변수가 지정되고 스타일이 0, 100, 9 또는 109가 아닌 경우에만 결정적입니다.
ISDATE의 반환 값은 SET DATEFORMAT, SET LANGUAGE 및 default language 옵션의 설정 내용에 따라 다릅니다. 예 3을 참조하십시오.
ISDATE 식 형식
ISDATE에서 1을 반환하는 유효한 형식의 예는 datetime 및 smalldatetime 항목의 datetime에 대해 지원되는 문자열 리터럴 형식 섹션을 참조하십시오. 다른 예를 보려면 CAST 및 CONVERT의 인수 섹션에서 입/출력 열을 참조하십시오.
다음 표에서는 0 또는 오류를 반환하는 잘못된 입력 식 형식을 요약하여 보여 줍니다.
ISDATE 식 |
ISDATE 반환 값 |
---|---|
NULL |
0 |
데이터 형식에서 문자열, 유니코드 문자열, 또는 날짜 및 시간을 제외한 모든 데이터 형식 범주에 속한 데이터 형식의 값 |
0 |
text, ntext 또는 image 데이터 형식의 값 |
0 |
초의 소수 자릿수가 세 자리를 초과하는 모든 값(.0000부터 .0000000...n까지) |
0 |
1995-10-1a와 같이 유효한 날짜에 잘못된 값이 섞여 있는 경우 |
0 |
예
1. ISDATE를 사용하여 올바른 datetime 식 테스트
다음 예에서는 ISDATE를 사용하여 문자열이 올바른 datetime인지 테스트하는 방법을 보여 줍니다.
IF ISDATE('2009-05-12 10:19:41.177') = 1
PRINT 'VALID'
ELSE
PRINT 'INVALID'
2. SET DATEFORMAT 및 SET LANGUAGE 설정이 반환 값에 미치는 영향
다음 문에서는 SET DATEFORMAT 및 SET LANGUAGE 설정의 결과로 반환되는 값을 보여 줍니다.
/* Use these sessions settings. */
SET LANGUAGE us_english;
SET DATEFORMAT mdy;
/* Expression in mdy dateformat */
SELECT ISDATE('04/15/2008'); --Returns 1.
/* Expression in mdy dateformat */
SELECT ISDATE('04-15-2008'); --Returns 1.
/* Expression in mdy dateformat */
SELECT ISDATE('04.15.2008'); --Returns 1.
/* Expression in myd dateformat */
SELECT ISDATE('04/2008/15'); --Returns 1.
SET DATEFORMAT mdy;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET DATEFORMAT mdy;
SELECT ISDATE('2008/04/15'); --Returns 1.
SET DATEFORMAT dmy;
SELECT ISDATE('15/04/2008'); --Returns 1.
SET DATEFORMAT dym;
SELECT ISDATE('15/2008/04'); --Returns 1.
SET DATEFORMAT ydm;
SELECT ISDATE('2008/15/04'); --Returns 1.
SET DATEFORMAT ymd;
SELECT ISDATE('2008/04/15'); --Returns 1.
SET LANGUAGE English;
SELECT ISDATE('15/04/2008'); --Returns 0.
SET LANGUAGE Hungarian;
SELECT ISDATE('15/2008/04'); --Returns 0.
SET LANGUAGE Swedish;
SELECT ISDATE('2008/15/04'); --Returns 0.
SET LANGUAGE Italian;
SELECT ISDATE('2008/04/15'); --Returns 1.
/* Return to these sessions settings. */
SET LANGUAGE us_english;
SET DATEFORMAT mdy;