根据提供的文件信息,本文将详细解释 MySQL 中有关格式判断的相关知识点。主要分为三大部分:判断字符串是否为汉字、判断日期格式是否正确以及判断字符串是否全为数字。 ### 一、判断字符串是否为汉字 在 MySQL 中,我们可以通过自定义函数的方式来实现对字符串是否全部为汉字的判断。该函数 `fc_is_hanzi` 接受一个 VARCHAR 类型的参数 `p_str`,并返回一个整数,表示该字符串是否完全由汉字组成。函数的实现逻辑如下: 1. **初始化变量**: - `_ret`:用于存储最终结果。 - `i`:循环计数器。 - `other_cnt`:记录非汉字字符的数量。 - `l_acode`:存储每个字符的 ASCII 值。 2. **遍历字符串**: - 使用 `WHILE` 循环逐个检查字符串中的每一个字符。 - 获取当前字符的 ASCII 值 `l_acode`。 - 如果 `l_acode` 不在汉字的 ASCII 范围内(即小于 124 或大于 254),则将 `other_cnt` 加一。 3. **判断结果**: - 如果 `other_cnt` 为 0,则表示字符串完全由汉字组成,返回值为 1;否则返回 0。 ### 二、判断日期格式是否正确 为了判断给定字符串是否符合正确的日期格式,可以创建一个名为 `fc_ck_date` 的函数。该函数接受一个 CHAR 类型的参数 `p_cont`,并返回一个 tinyint 类型的结果,表示该字符串的日期格式是否正确。函数的具体实现步骤如下: 1. **初始化函数**: - 使用 `DROP FUNCTION IF EXISTS` 确保不存在同名函数。 - 定义函数 `fc_ck_date` 并指定其返回值类型为 tinyint。 2. **判断日期格式**: - 使用 `DATE_FORMAT` 函数尝试将输入字符串转换为日期格式。 - 如果转换失败(即结果为 NULL),则返回 0 表示日期格式不正确。 - 如果转换成功,则返回 1 表示日期格式正确。 该函数支持两种日期格式:`yyyyMMdd` 和 `yyyy-MM-dd`。具体实现中通过 `%Y%m%d` 和 `%Y-%m-%d` 的格式来判断。 ### 三、判断字符串是否全为数字 为了判断一个字符串是否全部由数字组成,我们可以创建一个名为 `fc_is_num` 的函数。该函数同样接受一个 VARCHAR 类型的参数 `p_string`,并返回一个整数,表示该字符串是否全为数字。函数实现的步骤如下: 1. **初始化变量**: - `iResult`:用于存储正则表达式匹配的结果。 2. **使用正则表达式**: - 使用 `REGEXP` 函数检查输入的字符串是否匹配正则表达式 `^[0-9]*$`。 - 正则表达式含义:字符串必须从头到尾都由数字组成。 3. **判断结果**: - 如果 `iResult` 为 1,则表示字符串全为数字,返回 1;否则返回 0。 通过以上三个自定义函数的实现,我们可以有效地在 MySQL 中对字符串进行格式判断,包括但不限于判断字符串是否全为汉字、是否为有效的日期格式以及是否全为数字等。这些函数的应用场景非常广泛,在数据清洗、格式验证等方面都能发挥重要作用。
Posted on 2009-12-31 13:47 slimboy 阅读(101) 评论(0) 编辑 收藏 所属分类: 平时整理, 数据库开发/SQL Server/MySQL/Oracle
几个平常用的mysql函数
/*****************************************************
1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字
*****************************************************/
DROP FUNCTION IF EXISTS fc_is_hanzi;
CREATE FUNCTION fc_is_hanzi(
p_str VARCHAR(1024)
- 粉丝: 1
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助