ISDATE (Transact-SQL)
SQL Server 2005
判斷輸入運算式是否為有效的日期。
- expression
-
這是要作為日期來進行驗證的運算式。expression 是在 text、ntext 和 image 運算式之外,能夠隱含地轉換成 nvarchar 的任何運算式。
附註: 如果 expression 是 varchar 類型,值會轉換成 nvarchar(4000)。如果傳送導致截斷的較大值,SQL Server 2005 會產生錯誤。
只有在搭配 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
社群新增項目
新增
顯示:

