mysql存储过程1267_mysql存储过程一例
同事给的一个存储过程有点问题,测试发现" IF date_format(sysdate(),'%H:%i:%s') >
From_Time AND date_format(sysdate(),'%H:%i:%s') < End_Time THEN"
这个语句有问题。创建如下存储过程进行分析:
mysql> delimiter
//
mysql> create
procedure proc_t(in from_time time,in end_time time)
-> begin
->
IF
date_format(sysdate(),'%H:%i:%s') > From_Time AND date_format(sysdat
e(),'%H:%i:%s') <
End_Time THEN
->
select 'a';
->
else
->
select 'b';
->
end if;
-> end //
Query OK, 0 rows
affected (0.00 sec)
mysql> delimiter
;
该存储过程只是判断是否满足条件,执行结果是报错:
mysql> call
proc_t('23:00:00','23:50:00');
ERROR 1267 (HY000):
Illegal mix of collations (gbk_chinese_ci,COERCIBLE) and (la
tin1_swedish_ci,NUMERIC)
for operation '>'
如果按照1267错误去找,可能就偏离答案了。实际执行的存储过程中有对该报错的处理,因此结果不符合预期,但也没有报错。
由于输入变量from_time和end_time都是时间类型,而比较时使用date_format(sysdate(),'%H:%i:%s')生成的是字符串,不具有可比性,造成报错。
通过time函数,将比较运算符两边修改为都是时间格式,就不会报错了:
mysql> create
procedure proc_t(in from_time time,in end_time time)
-> begin
->
IF time(sysdate()) > From_Time
AND time(sysdate()) < End_Time THEN
->
select 'a';
->
else
->
select 'b';
->
end if;
-> end //
Query OK, 0 rows
affected (0.00 sec)
mysql> delimiter
;
mysql> call proc_t('23:00:00','23:59:00');
+---+
| a |
+---+
| a |
+---+
1 row in set (0.01
sec)
Query OK, 0 rows
affected (0.01 sec)
mysql存储过程1267_mysql存储过程一例相关推荐
- 系列 | 高性能存储-MySQL数据库之存储过程揭秘
墨墨导读:本文介绍什么是存储过程?为什么要使用存储过程?如何使用存储过程?如何去使用存储过程以及怎么执行存储过程. DBASK小程序已经开设"MySQL 数据库专栏",欢迎大家关注 ...
- mysql创建存储过程意义_浅谈一下mySql中创建存储过程
首先说一下为什么要使用存储过程,存储过程是在数据库中预编译的程序代码,其执行效率显然要比从程序端传过去的sql语句要高的多,这样既可以节省网络带宽,又可以加快sql的执行速度,可以很好的提高系统的性能 ...
- mysql与oracle存储过程_MySQL与Oracle差异比较之五存储过程Function
存储过程&Function 编号 类别 oracle Mysql 注释 1 创建存储过程语句不同 create or replace procedure P_ADD_FAC( id_fac_c ...
- MySql 自定义函数,存储过程,游标的使用
首先整理一下mysql内置的一些函数 MySQL内置函数 一.字符函数 (1)CONCAT()//字符连接 (2)CONCAT_WS()//使用指定的分隔符进行字符连接 (3)FORMAT()//数字 ...
- mysql与oracle存储过程_mysql与oracle存储过程对比
一.创建存储过程语句不同 mysql DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`; create procedure P_ADD_FAC(id_fac_c ...
- mysql存储过程 limit_mysql存储过程 limit
SQL分页查询代码 SQL Server 关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的 ...
- mysql视图及存储过程
目录 mysql之视图 前言 理解: 视图语句 表用例-student 视图检查选项 举例: 注意: 视图的更新 视图的作用 mysql之存储过程 存储过程定义 存储过程的特性 关于存储过程的创建及删 ...
- MySQL视图触发器存储过程内外链接数据锁
MySQL视图触发器存储过程内外链接数据锁 视图 什么是视图 是一个虚拟表,其内容由查询定义.同真实的一样,视图包含一系列带有名称的列和行数据 视图有什么用 视图的作用就是缓存数据,可以这么理解,我把 ...
- MySQL与ORACLE 存储过程的区别
存储过程&Function 编号 类别 ORACLE MYSQL 注释 1 创建存储过程语句不同 create or replace procedure P_ADD_FAC( id_fa ...
最新文章
- Python的命名空间和作用域
- 成功解决 编程语言代码结果中输出-9223372036854775808的数据
- WWF系列之----关于Host与WorkflowInstance之间的通讯
- 地理生物高考成绩查询2021,2021北京中考地理生物成绩查询时间【已公布】
- 等不到那人,回不到人间——dbGet(四)
- UnityShader1:渲染流水线
- Python修改Mp3文件名称
- python函数名的作用_Python:函数名称空间与作用域:
- 树上10只鸟,开枪打死1只,还剩几只?
- 警报:愚人节中国黑客可能发动史上最强病毒攻击
- 有关csdn博客账号注销说明
- DPDK Release 21.02
- zblog插件全自动采集伪原创发布插件免费
- 电脑如何录屏?分享4个屏幕录制的好方法,建议收藏
- 工作之外的闲暇时光(玩魔方)
- 认识浏览器:浏览器内核/页面加载/DOM和DOM树
- 数据库_关键字的使用
- 反向传播算法的理论基础,神经网络反向传播算法
- Pyhton可视化(1): 历年中国大学学术排行榜
- Qt事例: QScrollArea滚动区域
热门文章
- nginx代理设置域名跳转/域名重定向
- Internet Explorer 11 Enterprise Mode 排错
- thread 在 surfaceview 中的使用与删除
- 模拟input type=file
- 《xUnit Test Patterns》学习笔记6 - Test Double
- windows下mongodb的安装与配置
- 在Linux上挂载Windows共享文件夹,如何开机自动挂载(mount)
- Ajax异步请求登录
- ad 卡尔曼_对Kalman(卡尔曼)滤波器的理解
- swift瀑布流实现_CSS 实现瀑布流布局(display: flex)