- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表数据
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - BOOLEAN (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - Union vs Join
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备用键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 集群索引
- SQL - 非集群索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - 空值函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - 数据库调整
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
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 | +---------+
示例
当参数为 NULL 时,ISDATE() 函数将返回 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
SET LANGUAGE us_english; SELECT ISDATE('16/02/2023') AS 'in us_english';
输出
执行上述查询后,它将生成如下所示的输出:
+---------------+ | in us_english | +---------------+ | 0 | +---------------+
在 dmy 格式中
ISDATE() 函数取决于用户选择的格式设置类型。
考虑一个简单的示例,其中我们将观察格式设置如何使相同的值具有不同的返回值。
执行以下查询,其中我们将格式设置设置为 dmy。
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 | +-------------------+