从MySQL 5.5转换为AWS Aurora后,日期时间查询无法正常工作

时间:2017-04-15 22:48:40

标签: mysql datetime coalesce amazon-rds-aurora ifnull

我已将MySQL 5.5数据库迁移到AWS Aurora,并且两个数据库都按预期工作,但有一个例外。在COALESCE子句中使用IFNULLWHERE的一组存储过程的行为与DATETIME参数/列的预期行为无关。

MySQL 5.5和Aurora中存储过程的定义是:

CREATE DEFINER=`TesterAcct`@`%` PROCEDURE `usp_LookupTest`(
    IN paramEmail VARCHAR(200),
    IN paramCreateDate DATETIME
)
BEGIN

SELECT
    UserID as UserID,
    Email as Email,
    CreateDate as CreateDate
FROM Users      
WHERE
COALESCE(IFNULL(Email,''),'') = COALESCE(paramEmail,IFNULL(Email,''))
AND COALESCE(IFNULL(CreateDate,''),'') =  COALESCE(paramCreateDate,IFNULL(CreateDate,''))
;
END

用于测试存储过程的调用是:

call usp_LookupTest('pcg@none.com',null)

所查询记录的列都不是NULL,而且两个数据库实例(5.5和Aurora)都具有完全相同的数据和对象

在MySQL 5.5中,记录按预期返回,在Aurora中返回一个空数据集。我知道导致该问题的是CreateDate子句,因为当该行被注释掉时,Aurora中的调用确实会返回记录。

我不相信这种SQL语法是非标准的,并且没有找到关于处理COALESCEIFNULL的Aurora的任何文档。

我应该从哪里开始寻找下一个?

0 个答案:

没有答案