如何将下面的SqlServer的存储过程改造成mysql使用的存储过程

CREATEproc[dbo].[EVERYMONTH_CASHSEARCH](@timedatetime)asdeclare@all_paydecimal(12,2)-... CREATE proc [dbo].[EVERYMONTH_CASHSEARCH](
@time datetime
)
as
declare @all_pay decimal(12,2)--充值总金额
declare @all_free decimal(12,2)--充值手续费
declare @all_transfer decimal(12,2)--提现金额
declare @sys_account decimal(12,2)--平台剩余金额
declare @account_date datetime--当前日期
declare @start_time datetime--开始日期
declare @end_time datetime--结束日期
begin
set @start_time=(SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, @time)-1, 0))
set @end_time=(SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, @time), 0))
set @account_date=@time

select @all_pay=isnull(sum(AMOUNT),0.00) from [dbo].T_USER_CASH where OPERATE_TYPE='0' and TRADE_STATUS='0' and UPDATE_TIME>=@start_time and UPDATE_TIME<@end_time

select @all_transfer=isnull(sum(AMOUNT),0.00) from [dbo].T_USER_CASH where OPERATE_TYPE='1' and TRADE_STATUS='0' and UPDATE_TIME>=@start_time and UPDATE_TIME<@end_time

set @all_free=0.00

set @sys_account=@all_pay-@all_free-@all_transfer
insert into [dbo].T_SYS_ACCOUNT values(@account_date,@all_pay,@all_transfer,@sys_account,@all_free,N'3')
end
展开
 我来答
6rl
2014-08-08 · TA获得超过704个赞
知道小有建树答主
回答量:580
采纳率:66%
帮助的人:447万
展开全部
CREATE PROCEDURE EVERYMONTH_CASHSEARCH(
  in p_time datetime
)
begin
  declare v_all_pay decimal(12,2) DEFAULT 0;
declare v_all_free decimal(12,2) DEFAULT 0;
declare v_all_transfer decimal(12,2) DEFAULT 0;
declare v_sys_account decimal(12,2) DEFAULT 0;
declare v_account_date datetime DEFAULT NULL;
declare v_start_time datetime DEFAULT NULL;
declare v_end_time datetime DEFAULT NULL;


set v_start_time=date_sub(date_sub(date_format(v_time,'%y-%m-%d'),interval extract(day from v_time)-1 day),interval 1 month);

set v_end_time=date_sub(date_sub(date_format(v_time,'%y-%m-%d'),interval extract(day from v_time)-1 day),interval 0 month) ; 
set v_account_date=v_time;

select v_all_pay=ifnull(sum(AMOUNT),0.00) from T_USER_CASH where OPERATE_TYPE='0' and TRADE_STATUS='0' and UPDATE_TIME>=v_start_time and UPDATE_TIME<v_end_time;

select v_all_transfer=ifnull(sum(AMOUNT),0.00) from T_USER_CASH where OPERATE_TYPE='1' and TRADE_STATUS='0' and UPDATE_TIME>=v_start_time and UPDATE_TIME<v_end_time;

set v_all_free=0.00;

set v_sys_account=v_all_pay-v_all_free-v_all_transfer;
insert into T_SYS_ACCOUNT values(v_account_date,v_all_pay,v_all_transfer,v_sys_account,v_all_free,'3');
/**/
end
更多追问追答
追问
你好,我试了一下,可是insert方法好像没有执行,没有插入数据,而且返回的结果只有一个v_all_pay的值,我增加了分隔符还是不行,请问是什么原因
追答
需要相关的表结构,和一些数据给我调试一下?
T_USER_CASH
T_SYS_ACCOUNT
另外有没有报错?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式