繁体   English   中英

SOQL-将日期转换为所有者区域设置

[英]SOQL - Convert Date To Owner Locale

我们使用DBAmp将Salesforce.com与SQL Server(基本上添加了链接服务器)集成在一起,并且正在使用OPENQUERY对我们的SF数据运行查询。

我正在尝试针对机会进行一些报告,并希望在机会所有者的本地日期时间(即用户将在Salesforce中看到的日期时间)中返回机会的创建日期。

我们的dbamp配置将日期强制为UTC。

我偶然发现了一个日期函数(在Salesforce文档中),我认为这可能会有所帮助,但是在尝试使用它时出现错误,因此无法证明,下面是convertTimezone函数的示例用法:

SELECT HOUR_IN_DAY(convertTimezone(CreatedDate)), SUM(Amount)
FROM Opportunity
GROUP BY HOUR_IN_DAY(convertTimezone(CreatedDate))

以下是返回的错误:

OLE DB provider "DBAmp.DBAmp" for linked server "SALESFORCE" returned message "Error 13005 : Error translating SQL statement: line 1:37: expecting "from", found '('".
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "DBAmp.DBAmp" for linked server "SALESFORCE".

不能在OPENQUERY中使用SOQL函数,如下所示?

SELECT
    *
FROM
    OPENQUERY(SALESFORCE,'
        SELECT HOUR_IN_DAY(convertTimezone(CreatedDate)), SUM(Amount) 
        FROM Opportunity 
        GROUP BY HOUR_IN_DAY(convertTimezone(CreatedDate))')

更新:

我刚与Bill Emerson有过往来(我相信他是DBAmp Integration Tool的创建者):

您应该能够使用SOQL函数,所以我不确定为什么会出现解析失败。 我将设置一个测试用例并进行报告。

收到回复后,我将再次更新帖子。 谢谢

刚刚发布了新版本的DBAmp(2.14.4),该版本解决了在openquery中使用ConvertTimezone的问题。

版本2.14.4

  • 修改代码以提高内存利用率
  • 添加了对API 24.0(SPRING 12)的支持
  • 修复了字符串文字中嵌入问号的问题
  • 解决了在openquery中使用ConvertTimezone的问题
  • 修复了在openquery中使用聚合函数时出现的“无效数值”问题

我非常确定,因为DBAmp使用SQL而不是SOQL,所以SOQL函数将不可用,对不起。

您将需要以其他方式公开此数据。 Salesforce报表Web服务或通过用于访问(DBAmp)SQL Server的程序来编译数据,也许是可能的。

如果要创建Salesforce Web服务,以下示例可能会有所帮助。

global class MyWebService 
{
    webservice static AggregateResult MyWebServiceMethod() 
    {
        AggregateResult ar = [
            SELECT 
                HOUR_IN_DAY(convertTimezone(CreatedDate)) Hour, 
                SUM(Amount) Amount 
            FROM Opportunity 
            GROUP BY HOUR_IN_DAY(convertTimezone(CreatedDate))];

        system.debug(ar);
        return ar;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM