2020-06-29 09:45:27 版本 : SqlServer验证时间和数值,使用ISDATE ( expression ) 和ISNUMERIC ( expression )
作者: 周杨 于 2020年06月29日 发布在分类 / 计算机应用 / 数据库 / SQLSERVER 下,并于 2020年06月29日 编辑
 历史版本

备注 修改日期 修改人
CREAT 2020-06-29 09:45:27[当前版本] 系统管理员


ISDATE()

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

语法
ISDATE ( expression ) 

参数
expression

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

返回类型
int(若是有效日期,返回值为1,否则为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                   



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)

————————————————
版权声明:本文为CSDN博主「只想发财」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a4171175/java/article/details/80142747

历史版本-目录  [回到顶端]
    知识分享平台 -V 5.1.4 -大信谛威