ISDATE (Transact-SQL)
判斷輸入運算式是否為有效的日期。
語法
ISDATE ( expression )
引數
expression
這是要作為日期來進行驗證的運算式。expression 是在 text、ntext 和 image 運算式之外,能夠隱含地轉換成 nvarchar 的任何運算式。附註: 如果 expression 是 varchar 類型,值會轉換成 nvarchar(4000)。如果傳送導致截斷的較大值,SQL Server 2005 會產生錯誤。
傳回類型
int
備註
只有在搭配 CONVERT 函數使用,而且已指定 CONVERT 樣式參數,且樣式不等於 0、100、9 或 109 時,ISDATE 才具備決定性。
ISDATE 的傳回值可能會受到 LANGUAGE 和 DATEFORMAT 設定的影響。
如需 ISDATE 將傳回 1 的範本範例,請參閱<CAST and 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
資料表,且會插入兩個值。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)