- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
Salesforce SOQLにおけるconvertTimezoneエラーの解説と解決方法
SalesforceのSOQLでは、convertTimezone() 関数は単独では使用できず、必ず日付関数の内部で使用する必要があります。
例えば、次のようなクエリはエラーとなります。
SELECT convertTimezone(CreatedDate) FROM Opportunity
このクエリでは、convertTimezone() が単体で使用されているため、エラーが発生します。実際、convertTimezone() は日付データのタイムゾーン変換を行いますが、その結果を直接返すことはできません。代わりに、日付関数と組み合わせる必要があります。
正しい使用例
以下の例では、convertTimezone() を DAY_ONLY() 関数と組み合わせて使用し、CreatedDateのタイムゾーン変換後の日付のみを取得しています。
SELECT DAY_ONLY(convertTimezone(CreatedDate)) FROM Opportunity
このように、DAY_ONLY() や HOUR_IN_DAY() といった日付関数の内部で convertTimezone() を利用することで、正しく動作させることができます。
その他の例:
-
時間のみ取得する場合:
SELECT HOUR_IN_DAY(convertTimezone(CreatedDate)) FROM Opportunity
-
集計クエリでの利用例:
SELECT DAY_ONLY(convertTimezone(CreatedDate)), COUNT(Id) FROM Lead GROUP BY DAY_ONLY(convertTimezone(CreatedDate))
まとめ
-
エラーの原因:
convertTimezone() を単独で使用すると、SOQLで「Invalid aggregate function: convertTimezone」というエラーが発生します。 -
解決策:
convertTimezone() を DAY_ONLY() や HOUR_IN_DAY() などの日付関数の内部で使用してください。
この手法を用いることで、SalesforceのSOQLクエリ内でタイムゾーン変換を正しく行い、エラーを回避することができます。
- リンクを取得
- ×
- メール
- 他のアプリ
コメント
コメントを投稿