MySQL的不产生使用ODBC日期参数正确的结果(MySQL not generating corr

2019-10-18 03:24发布

我最近升级我的版本的MySQL 5.6.10到(在Linux社区版),随后我无法正常运行水晶报表是经过MySQL的ODBC驱动程序3.5.1工作得很好说话到MySQL 5.0.24a。

该报告是建立关闭的SQL命令,如果我手动键入查询和日期ALA 2013年5月15日到MySQL客户端的正常工作,但通过ODBC传递参数时,它(这将重新格式化日期查询为{ d“2013年5月15日”} MySQL的返回随机的结果,这意味着一次运行会返回结果没有负值,另一个运行仅返回负值,而另一个运行将不返回任何结果。在某些情况下,我居然得到了完整的报告,但它是不可预测的。

我已经得到了它缩小到具体的日期参数,但升级到双方的Crystal Reports 2011以及MySQL的ODBC 5.2后 - 的问题仍然存在。 我已经改变了“日期”参数设置为“字符串”参数,它周围的工作,但是这不是理想的。

其他一切与MySQL 5.6.10服务器看起来是良好运行,我还在努力,以确定是否有关于5.0和5.6之间作出修改ODBC是如何处理的,但到目前为止我没有运气搞清楚只是这是为什么表现得那么奇怪。

下面是有关参数查询的一部分...

    select sql_no_cache
    if(CCT.creditCardTypeName is not null, CCT.creditCardTypeName, if(OPBML.orderPaymentBMLID is not null, 'Bill Me Later', 'Cash/Check')) as theType,
    'orderPayment               ' as source,
    date_format(OP.authorizationDate, '%Y-%m-%d') as theDate,
    if (OPC.checkNumber is not null, OPC.checkNumber, '') as checkNum,
    if (OPWT.wireTransferDate is not null, OPWT.wireTransferNumber, '') as wtNum,
    concat(C.lastName, ', ', C.firstName) as custName,
    O.orderNumber,
    OP.amount
from
    orders O
    inner join orderPayment OP on (O.ordersID=OP.ordersID)
    inner join paymentMethod PM on (PM.paymentMethodID=OP.paymentMethodID)
    inner join customer C on (C.customerID=O.customerID)
    inner join partner P on (C.partnerID = P.partnerID and P.businessUnit = {?businessUnit})
    left outer join orderPaymentBML OPBML on (OP.orderPaymentID=OPBML.orderPaymentID)
    left outer join orderPaymentCheck OPC on (OP.orderPaymentID=OPC.orderPaymentID)
    left outer join orderPaymentCreditCard OPCC on (OP.orderPaymentID=OPCC.orderPaymentID)
    left outer join orderPaymentWireTransfer OPWT on (OP.orderPaymentID=OPWT.orderPaymentID)
    left outer join creditCardType CCT on (CCT.creditCardTypeID=OPCC.creditCardTypeID)
where
    OP.authorizationDate between date_add({?date},INTERVAL "3:0:01" HOUR_SECOND) and 
    date_add( date_add({?date}, INTERVAL 1 DAY), INTERVAL "3:0:00" HOUR_SECOND) and
    PM.paymentMethodAbbreviation in ('BM', 'CC', 'CH', 'WT')

谢谢,--SJ

Answer 1:

最后的评论是该决议:

“好了 - 我想我已经解决了这个问题原来5.6.4改变关键字如何影响面值是字符集必须在ODBC驱动程序中指定的副作用我指定了正确的字符数据库和集我现在得到正确的结果。”

猜已经明确指出,我们没有它规定,它大多数人只是工作。“



文章来源: MySQL not generating correct results using ODBC date parameter