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 和 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)