SqlServer验证时间和数值,使用ISDATE ( expression ) 和ISNUMERIC ( expression )

ISDATE

ISDATE
确定输入表达式是否为有效的日期。

语法
ISDATE ( expression ) 

参数
expression

一个表达式,将要验证它是否为一个日期。expression 是任何返回 varchar 数据类型的表达式。 

返回类型
int

示例
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 

ISNUMERIC

ISNUMERIC
确定表达式是否为一个有效的数字类型。

语法
ISNUMERIC ( expression )

参数
expression

要计算的表达式。

返回类型
int

注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。

示例
A. 使用 ISNUMERIC
下面的示例返回 1,这是因为 zip 列包含有效的数值。 

USE pubs
SELECT ISNUMERIC(zip) 
FROM authors
GO B. 使用 ISNUMERIC 和 SUBSTRING 下面的示例对于 titles 表中的所有书名都返回 0,这是因为没有一个书名是有效的数值。 USE pubs GO -- Because the title column is all character data, expect a result of 0 -- for the ISNUMERIC function. SELECT SUBSTRING(title, 1, 15) type, price, ISNUMERIC(title) FROM titles GO 下面是结果集: type price --------------- -------------------------- ----------- The Busy Execut 19.99 0 Cooking with Co 11.95 0 You Can Combat 2.99 0 Straight Talk A 19.99 0 Silicon Valley 19.99 0 The Gourmet Mic 2.99 0 The Psychology (null) 0 But Is It User 22.95 0 Secrets of Sili 20.00 0 Net Etiquette (null) 0 Computer Phobic 21.59 0 Is Anger the En 10.95 0 Life Without Fe 7.00 0 Prolonged Data 19.99 0 Emotional Secur 7.99 0 Onions, Leeks, 20.95 0 Fifty Years in 11.95 0 Sushi, Anyone? 14.99 0 (18 row(s) affected) 

转载于:https://www.cnblogs.com/lydg/p/11362995.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值