gpt4 book ai didi

mysql - 存储过程参数在 concat 中不起作用

转载 作者:行者123 更新时间:2023-11-30 22:38:53 26 4
gpt4 key购买 nike

下面是我正在使用的过程。我无法在下面提供的连接语句中使用过程的参数(ptodate 时间戳,pfromdate 时间戳)。请建议如何在下面的过程中使用过程的参数从开始和结束获取数据参数中提供的日期。当我运行此过程时,错误会生成“查询已终止”。错误发生在我在 concat 语句中使用(ptodate 时间戳,pfromdate 时间戳)参数的行。请提出建议。

CREATE DEFINER=`root `@`127.0.0.1` PROCEDURE`procedurename`(phonecode int,ptodate timestamp,pfromdate timestamp)
BEGIN
if(phonecode=880)
then
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(IF(a.category_name = ''',
a.category_name,
''',1,0)) AS ',
"'",p.name,"'"
)
)into @SQL
FROM tablea a
JOIN tableb p ON a.category_name=p.id
where a.sender_country_code=880
and a.created_datetime>ptodate and a.created_datetime<pfromdate;

SET @sql = CONCAT('SELECT DATE(a.date_time),
', @sql, '
FROM edr_im a
JOIN package p ON a.category_name=p.id
WHERE a.message_type="sticker"
and
a.sender_country_code=880 and a.created_datetime>',ptodate,' and a.created_datetime<',pfromdate,'
GROUP BY 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
end if;
end

最佳答案

您需要在日期周围加上引号。

SET @sql = CONCAT('SELECT DATE(a.date_time),
', @sql, '
FROM edr_im a
JOIN package p ON a.category_name=p.id
WHERE a.message_type="sticker"
and
a.sender_country_code=880 and a.created_datetime>"',ptodate,'" and a.created_datetime<"',pfromdate,'"
GROUP BY 1');

关于mysql - 存储过程参数在 concat 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31646136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com