【发布时间】:2022-01-08 10:34:56
【问题描述】:
我正在尝试在 SOQL 查询中使用自定义标签值。查询不接受自定义标签值。它是预期的数字。
整数 num_days = Integer.valueOf(System.Label.Num_of_Days); 选择 id, name FROM contact WHERE LastModifiedDate >= LAST_N_DAYS :num_days
谢谢, 阿尼尔库马尔
【问题讨论】:
标签: salesforce soql
我正在尝试在 SOQL 查询中使用自定义标签值。查询不接受自定义标签值。它是预期的数字。
整数 num_days = Integer.valueOf(System.Label.Num_of_Days); 选择 id, name FROM contact WHERE LastModifiedDate >= LAST_N_DAYS :num_days
谢谢, 阿尼尔库马尔
【问题讨论】:
标签: salesforce soql
您正在使用的“常量”的完整语法中已经有一个分号:LAST_N_DAYS:7 等。整个内容必须是编译时已知的文本,而不仅仅是 : 之前的部分
这甚至不会编译,用 1 或 2 个分号。
Integer x = 7;
List<Account> accs = [SELECT Id FROM Account WHERE CreatedDate = LAST_N_DAYS:x];
System.debug(accs);
您需要使用动态 SOQL 或使用自定义标签来构造日期变量
String x = '7';
List<Account> accs = Database.query('SELECT Id FROM Account WHERE CreatedDate = LAST_N_DAYS:' + x);
System.debug(accs);
DateTime cutoff = System.today().addDays(- Integer.valueOf(x));
System.debug(cutoff);
System.debug([SELECT Id FROM Account WHERE CreatedDate <= TODAY AND CreatedDate >= :cutoff]);
【讨论】: