mysql日期加时间字符串连接_mysql-如何连接字符串并转换为日期字符串?

bd96500e110b49cbb3cd949968f18be7.png

Please take a look at my stored procedure code.

CREATE DEFINER=`ninjaboy`@`%` PROCEDURE `getMonthlyTotalScore`(IN ninjaId int, IN month int, IN year int)

BEGIN

DECLARE startDate DATE;

DECLARE endDate DATE;

DECLARE maxDay INTEGER;

SELECT DAY(LAST_DAY(year + '-' + month + '-01')) INTO maxDay;

SET startDate = year + '-' + month + '-01';

SET endDate = year + '-' + month + '-' + maxDay;

SELECT SUM(SCORE) FROM NINJA_ACTIVITY WHERE NINJA_ID = ninjaId AND DATE BETWEEN startDate AND endDate ORDER BY DATE;

END

Test Data:

NINJA_ACTIVITY_ID | NINJA_ID | SCORE | DATE

1 1 24 2012-05-01

2 1 36 2012-05-06

3 1 29 2012-05-11

Function call : call getTotalMonthlyScore (1, 5, 2012)

I'm trying to get the monthly score of any ninja based on the ninjaId.

Why is not working? Any idea where I am getting wrong?

解决方案

CONCAT() is the key.

BEFORE:

mysql> CREATE PROCEDURE `getMonthlyTotalScore`(IN ninjaId int, IN month int, IN year int)

-> BEGIN

-> DECLARE startDate DATE;

-> DECLARE endDate DATE;

-> DECLARE maxDay INTEGER;

->

-> SELECT year + '-' + month + '-01'; #NOTE THIS

->

->

-> END;

-> |

Query OK, 0 rows affected (0.00 sec)

mysql> call getMonthlyTotalScore(1,5,2012);

-> |

+----------------------------+

| year + '-' + month + '-01' |

+----------------------------+

| 2016 |

+----------------------------+

1 row in set (0.00 sec)

AFTER:

mysql> CREATE PROCEDURE `getMonthlyTotalScore`(IN ninjaId int, IN month int, IN year int)

-> BEGIN

-> DECLARE startDate DATE;

-> DECLARE endDate DATE;

-> DECLARE maxDay INTEGER;

->

-> SELECT CONCAT(year,'-',month,'-01'); # NOTE THIS

->

->

-> END; |

Query OK, 0 rows affected (0.00 sec)

mysql> call getMonthlyTotalScore(1,5,2012);

-> |

+------------------------------+

| CONCAT(year,'-',month,'-01') |

+------------------------------+

| 2012-5-01 |

+------------------------------+

1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值