MySQL 游标的 FETCH 不适用于时间数据类型

标签 mysql database cursor

MySQL 游标的 FETCH 不适用于时间数据类型

给定光标相关代码

declare Normaltimeopen time;
declare cursorName cursor for select statement;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
open cursorName;
Fetch cursorName into Normaltimeopen ;
IF flag = 1 THEN
    CLOSE cursorName ;        
END IF;
close cursorName;

因此,Normaltimeopen 变量设置为“00:00:00”,但表包含值“16:00:00”。 我用“mysql调试器”进行了调试,但没有得到任何线索。

最佳答案

我无法重现该问题,测试代码按预期工作:

/*Table structure for table `table1` */

DROP TABLE IF EXISTS `table1`;

CREATE TABLE `table1` (
  `tablenormaltimeopen` TIME DEFAULT NULL
) ENGINE=INNODB;

/*Data for the table `table1` */

INSERT  INTO `table1`(`tablenormaltimeopen`) VALUES ('16:00:00');

/* Procedure structure for procedure `sp_test` */

/*!50003 DROP PROCEDURE IF EXISTS  `sp_test` */;

DELIMITER $$

CREATE PROCEDURE `sp_test`()
BEGIN
    DECLARE `flag` TINYINT(1) DEFAULT 0;
    DECLARE `Normaltimeopen` TIME;
    DECLARE `cursorName` CURSOR FOR
    SELECT `tablenormaltimeopen` FROM `table1`;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET `flag` := 1;
    OPEN `cursorName`;
    FETCH `cursorName` INTO `Normaltimeopen`;
    IF NOT `flag` THEN
        SELECT `Normaltimeopen`;
    END IF;
    CLOSE `cursorName`;
END$$

DELIMITER ;

SQL Fiddle demo

关于MySQL 游标的 FETCH 不适用于时间数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22142430/

相关文章:

ios - 如何使用解析数据库在 iOS 应用程序中实现好友添加/删除功能?

python - Django DB 模型 F 组合表达式

delphi - 如何清除 TCanvas?或任何其他解决方案

Javascript 使用 javascript 按钮更改 CSS 页面并根据 cookie 保存

php - yum install php-mysql 无法安装Centos

MySQL COUNT(*) 来自相关的 "visits"表

sql - 如果创建日期超过一周,则删除 SQL 表 - MS SQL Server

php - 自动创建网上商店

php - 需要帮助删除 mysql 结果中的重复列

c# - 如何使用游标检索所有使用 TweetSharp 的 Twitter 用户?