Как я могу исправить ошибку MySQL, не разрешено возвращать набор результатов из функции - PullRequest
0 голосов
/ 13 апреля 2020
CREATE FUNCTION `ConvertDate`(StringDate varchar(15))
RETURNS datetime
BEGIN
declare CDATE varchar(10);
SET CDATE = StringDate;
select str_to_date(CDATE,'%Y%m%d %h%i');
RETURN CDATE;
END

Я получаю сообщение об ошибке из-за невозможности вернуть набор результатов из функции в SQL Заявление. Как я могу исправить эту ошибку?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Ваша проблема в том, что в вашем операторе SELECT нет предложения INTO, поэтому он пытается вернуть набор результатов из функции. Вы можете изменить это на:

SELECT STR_TO_DATE(CDATE,'%Y%m%d %h%i') INTO CDATE;

Но вы могли бы также выполнить все вычисления в выражении RETURN:

CREATE FUNCTION `ConvertDate2`(StringDate varchar(15))
RETURNS datetime
RETURN STR_TO_DATE(StringDate,'%Y%m%d %h%i');
0 голосов
/ 13 апреля 2020

Вы должны

Select INTO cdate... 

или не беспокоиться о select и

set cdate = str_to_date..

НО Если это не очень упрощенная версия вашей действительной функции, я не вижу смысла функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...