我有一个带有多个选择和结果集的sproc。sproc中的最后一个查询需要选择一个表在当前月份的第一天创建日期>=的数据。我有SQL,它成功地按预期返回了这个月的第一天。我需要将这个值选择到sproc变量FirstDayOfTheMonth中,然后在sproc中随后的select语句的WHERE子句中引用这个变量。在sproc中的最终结果集中之前,我包括了以下SQL,但似乎MySQL不喜欢它的一些内容--关于它的结构、位置或语法:
DECLARE FirstDayOfMonth INT DEFAULT 0;
SET FirstDayOfMonth = (SELECT DATE_SUB(LAST_DAY(NOW()),INTERVAL DAY(LAST_DAY(NOW()))- 1 DAY)如何更新对MySQL sproc变量的现有尝试,以便我的sproc使用此变量声明成功编译?
更新
我试图在sproc中的BEGIN关键字后面放置以下2行:
DECLARE FirstDayOfMonth INT DEFAULT 0;
SET FirstDayOfMonth = (SELECT DATE_SUB(LAST_DAY(NOW()),INTERVAL DAY(LAST_DAY(NOW()))- 1 DAY)MySQL工作台在SET语句上显示一个错误:
FirstDayOfMonth在此位置无效,因为需要标识符。
你知道我需要做些什么吗?
发布于 2020-02-04 15:52:28
DECLARE-statements需要在过程的开头,在其他任何东西之前,就在BEGIN之后。
https://stackoverflow.com/questions/60060971
复制相似问题