MySQL 错误 : PROCEDURE can't return a result set in the given context

标签 mysql stored-procedures mysql-error-1312

我是 mysql 中的存储过程的新手

这是返回不包括周末的日期差异的过程,但它返回错误

#1312 - PROCEDURE blog1.DayCount 无法返回给定上下文中的结果集

这是程序

DROP PROCEDURE IF EXISTS daycount; 
CREATE PROCEDURE DayCount( d1 DATE, d2 DATE ) 
SELECT dd.iDiff, dd.iDiff - dd.iWeekEndDays AS iWorkDays, dd.iWeekEndDays 
FROM ( 
  SELECT 
    dd.iDiff, 
    ((dd.iWeeks * 2) +  
    IF(dd.iSatDiff >= 0 AND dd.iSatDiff < dd.iDays, 1, 0) +  
    IF (dd.iSunDiff >= 0 AND dd.iSunDiff < dd.iDays, 1, 0)) AS iWeekEndDays 
  FROM ( 
    SELECT 
      dd.iDiff, 
      FLOOR(dd.iDiff / 7) AS iWeeks, 
      dd.iDiff % 7 iDays, 
      5 - dd.iStartDay AS iSatDiff, 
      6 - dd.iStartDay AS iSunDiff 
    FROM ( 
      SELECT 
        1 + DATEDIFF(d2, d1) AS iDiff, 
        WEEKDAY(d1) AS iStartDay 
      ) AS dd 
  ) AS dd 
) AS dd ; 


CALL DayCount( '2009-8-1','2009-9-15'); 

最佳答案

在 mysql 控制台中检查此存储过程,如果它工作正常,您应该检查来自 PHP 的调用。 我发现 same problem is happen with other people .

关于MySQL 错误 : PROCEDURE can't return a result set in the given context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3317780/

相关文章:

mysql - 如何通过邮政编码将一张表连接到另一张表?

php - 获取在 MySql 中创建的最后一个主键

stored-procedures - ASP Classic - 记录集对象与命令对象

sql - 编写一个 PL/pgSQL 函数,以便在找到 "nothing"时不设置 FOUND?

在表值函数中使用#table/Temp 表的 SQL

mysql - 为什么在使用简单存储过程时出现 MySQL 错误 #1312?

mysql - 找出每组前 10% 的购买产品,然后找出这 10% 的平均值

mysql删除表中的重复项

MySQL 存储过程不适用于 SELECT(基本问题)

Mysql存储过程