SQL ISDATE() 函数

SQL ISDATE() 函数

SQL ISDATE() 函数允许您判断一个值是否为有效日期。如果您使用它与convert函数一起使用,这个函数将始终返回相同的结果。ISDATE() 函数返回整数值1,表示输入表达式是一个有效日期;如果返回整数值0,则表示输入表达式不是日期。

如果您提供一个datetime2值,ISDATE() 函数将返回0,提示您它不是一个日期。

语法

以下是SQL ISDATE() 函数的语法 –

ISDATE(expression)

参数

此函数只接受一个参数,如下所述:

  • expression − 要检查的表达式。

注意 − 如果给定的日期仅包含时间部分,则month()函数返回1。

示例

在以下查询中,我们正在检查表达式是否有效:

SELECT ISDATE('2023-02-16');

输出

当我们执行上述查询时,获取的输出如下所示:

+---------+
| no name |
+---------+
| 1       |
+---------+

示例

在这里,我们尝试使用以下查询来确定给定的表达式是否有效-

SELECT ISDATE('Tutorialspoint');

输出

执行上述查询时,输出如下所示:

+---------+
| no name |
+---------+
| 0       |
+---------+

示例

ISDATE() 函数在参数为 NULL 时将返回0,表示NULL值不是有效的日期。

在下面的示例中,我们将使用null来检查表达式是否有效,通过执行以下查询:

SELECT ISDATE(NULL) as Result;

输出

上述查询的输出如下所示:

+--------+
| Result |
+--------+
| 0      |
+--------+

示例

看下面的示例,我们在表达式中使用了月份的 字面名称 来检查表达式是否有效,使用以下查询:

SELECT ISDATE('November 27 2000') as Result;

输出

如果我们执行上述查询,则结果如下生成−

+--------+
| Result |
+--------+
| 1      |
+--------+

示例

考虑以下示例,我们将 时间 作为输入参数,并通过执行以下查询来检查表达式是否有效。

SELECT ISDATE('2:36:00') as Result;

输出

执行上述查询后,将生成如下所示的输出结果:

+--------+
| Result |
+--------+
| 1      |
+--------+

示例

让我们来看以下示例,其中我们使用ISDATE()函数与一个变量一起,通过运行以下查询检查表达式是否有效。

DECLARE @expression VARCHAR(23);
SET @expression= '2023/02/16';
SELECT ISDATE(@expression) AS Result;

输出

执行上述查询后,将生成如下所示的输出:

+--------+
| Result |
+--------+
| 1      |
+--------+

示例

考虑以下示例,我们将根据返回值为1或0来打印有效日期或无效日期,使用以下查询:

要使用返回值,您可以使用条件表达式(而不仅仅显示0或1)。

IF ISDATE('2023-02-16')=1  
   PRINT 'Valid Date'  
ELSE  
   PRINT 'Invalid Date';

输出

运行上述查询时,将生成如下输出 −

Valid Date

示例

ISDATE()的返回值取决于用户选择的语言类型和日期格式设置。

让我们来考虑一个简单的示例,在这个示例中,我们将观察到改变语言设置会导致相同的值有多种结果。

在英国语言中

执行以下查询,其中语言设置为英国语。

SET LANGUAGE British;
SELECT ISDATE('16/02/2023') AS 'in British';

输出

当我们执行上述查询时,输出结果如下所示:

+------------+
| in British |
+------------+
| 1          |
+------------+

在us_english语言环境中

我们将使用相同的值,但不同的是语言设置为us_english

SET LANGUAGE us_english;
SELECT ISDATE('16/02/2023') AS 'in us_english';

输出

当上述查询被执行时,它将产生如下所示的输出-

+---------------+
| in us_english |
+---------------+
| 0             |
+---------------+

以日/月/年格式

ISDATE()函数取决于用户选择的格式设置类型。

考虑一个简单的示例,我们将观察如何通过格式设置使相同的值具有不同的返回值。

执行下面的查询,我们将格式设置为 日/月/年

SET DATEFORMAT dmy;
SELECT ISDATE('16/02/2023') AS 'DATEFORMAT is dmy';

输出

运行上述查询,生成如下所示的输出结果 –

+-------------------+
| DATEFORMAT is dmy |
+-------------------+
| 1                 |
+-------------------+

以mdy格式

在考虑相同的值并将格式设置更改为 mdy 后,执行以下查询。

SET DATEFORMAT mdy;
SELECT ISDATE('16/02/2023') AS 'DATEFORMAT is mdy';

输出

当我们执行上述查询时,得到的输出如下:

+-------------------+
| DATEFORMAT is mdy |
+-------------------+
| 0                 |
+-------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程