ISDATE (Transact-SQL)
入力式が有効な日付かどうかを調べます。
構文
ISDATE ( expression )
引数
expression
日付として検証される式です。expression は、text、ntext、および image 式を除く任意の式で、暗黙的に nvarchar に変換できます。メモ : expression が varchar 型の場合、値は nvarchar(4000) 型に変換されます。切り捨ての対象となる大きな値が渡された場合、SQL Server 2005 ではエラーが生成されます。
戻り値の型
int
解説
ISDATE は、CONVERT 関数と共に使用され、CONVERT スタイル パラメータが指定されており、スタイルが 0、100、9、または 109 と等しくない場合にのみ決定的関数になります。
ISDATE の戻り値は、LANGUAGE および DATEFORMAT の設定にも影響されます。
ISDATE が 1 を返すテンプレート例については、「CAST および CONVERT」の「引数」にある「入力/出力」の列を参照してください。
入力式が有効な日付の場合、ISDATE は 1 を返します。それ以外の場合は 0 を返します。次の表に、いくつかの例と戻り値を示します。
列 (varchar) の値 | ISDATE 戻り値 |
---|---|
NULL |
0 |
Abc |
0 |
100、-100、100 a、または 100.00 |
0 |
.01 |
0 |
-100.1234e-123 |
0 |
.231e90 |
0 |
$100.12345、- $100.12345、または $-1000.123 |
0 |
as100 または 1a00 |
0 |
1995-10-1、1/20/95、1995-10-1 12:00pm、Feb 7 1995 11:00pm、1995-10-1、または 1/23/95 |
1 |
13/43/3425 または 1995-10-1a |
0 |
$1000、$100、または $100 a |
0 |
例
A. ISDATE を使用して変数を調べる
次の例では、@datestring
ローカル変数が有効な日付データかどうかを調べます。
DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)
以下に結果セットを示します。
-----------
1
B. ISDATE を使用して列が日付かどうかを調べる
次の例では、test
_dates
テーブルを作成し、2 つの値を挿入します。ISDATE
を使用して、列内の値が日付かどうかを調べます。
USE tempdb
CREATE TABLE test_dates (Col_1 varchar(15), Col_2 datetime)
GO
INSERT INTO test_dates VALUES ('abc', 'July 13, 1998')
GO
SELECT ISDATE(Col_1) AS Col_1, ISDATE(Col_2) AS Col_2
FROM test_dates
以下に結果セットを示します。
Col_1 Col_2
----------------- --------------------
0 1
参照
関連項目
SET DATEFORMAT (Transact-SQL)
SET LANGUAGE (Transact-SQL)
char および varchar (Transact-SQL)
システム関数 (Transact-SQL)