SQL Server ISDATE() 函数
在 SQL Server 中,如果输入表达式是有效的 datetime 值,ISDATE()
函数返回 1,否则返回 0。
ISDATE(input_expression)
参数
input_expression:它是字符串或可以转换为字符串的表达式。它必须少于 4000 个字符。
注意:datetime 范围是 1753-01-01 到 9999-12-31,date 范围是 0001-01-01 到 9999-12-31。
返回值
返回整数值 0 或 1。0 表示输入表达式不是日期。1 表示输入表达式是有效的日期或 datetime 值。
如果 input_expression 是 datetime2 值,则 ISDATE()
返回 0。
检查有效日期字符串
在以下示例中,ISDATE()
验证指定的日期字符串是否为有效日期。如果有效则返回 1,否则返回 0。
示例:验证日期字符串
SELECT ISDATE ('2022-10-20') AS IsValidDate

检查有效日期时间字符串
在以下示例中,ISDATE()
函数验证指定的字符串是否为有效的 datetime 值。
示例:验证日期时间字符串
SELECT ISDATE ('2022-10-20 10:10:20') AS IsValidDate

在以下示例中,将字符串、整数值、布尔值和布尔值传递给 ISDATE()
函数,该函数返回 0 (False)。
示例:无效日期
SELECT ISDATE ('Hello') AS IsStrDate, ISDATE(1234) AS IsIntdate, ISDATE('FALSE') AS IsBolDate, ISDATE(0) IsBolintDate

检查有效日期时间格式
在以下示例中,将无效日期格式传递给 ISDATE()
函数。
示例
SELECT ISDATE ('2022-20-10') AS IsValidDate

上述查询返回 0,因为日期格式根据服务器设置无效。ISDATE()
的返回值取决于由 SET DATEFORMAT、SET LANGUAGE 和服务器的默认语言设置的服务器设置。
要检查 SQL Server 的当前设置,请使用以下语句
示例:服务器设置
DBCC useroptions

如您所见,服务器的有效日期格式是 mdy
,因此 ISDATE()
函数返回 0。现在,将日期格式更改为 dmy
,如下所示。
示例:更改日期格式
SET DATEFORMAT dmy;
现在,再次执行以下 SQL。这次 ISDATE()
函数返回 1。
示例
SELECT ISDATE ('2022-20-10') AS IsValidDate

注意:您可以将日期格式从标准 mdy 格式更改为 dmy、ydm、ymd。