2011-12-16 60 views
2

誰でも私にSOQLクエリの作成を手伝うことができます。 WHERE文の "Date"データ型を使用するのは簡単ですが、通常のDateのように動作します。しかし、データタイプが「フォーミュラ(日付)」の場合、通常の日付時刻機能は機能していないようです。SOQL日付の比較式(日付)の日付の種類

SELECT Date_of_purchase__c FROM Goods WHERE Date_of_purchase__c = 2011-11-04 

のようなサンプルクエリでは、「Date_of_purchase__c」フィールドが「Date」タイプの場合はすべて正常に動作します。ただし、フィールドの種類が「式(日付)」の場合、同じクエリは失敗します。私は間違って何をしていますか?ありがとう!

答えて

2

dateタイプを使用していて、datetimeではありませんか?私は式を使用して、テストするために連絡先に式フィールドを作成:

DATEVALUE(CreatedDate) 

私は、システムログに次のコードを実行しました:

System.Debug([Select Name From Contact Where CreatedDateF__c = 2011-12-16]); 

をし、私はそれが20行が返されていることがわかります。

+0

ありがとうございました!私がカスタムフィールド定義の詳細で見ることができるのは、データ型が「数式」だということです。日付は、いくつかの他の数式フィールドから計算されます。サンプルオブジェクトを取得すると、このフィールドは通常のY-m-d形式になります。今私は、数式データ型は両方の方法で動作していないと信じています - データを取得するときにのみ動作しますが、whereステートメントでは使用できません。 – dvdbrk

+0

私がちょうど示したサンプルは、WHERE文の式を使用しています! :)おそらくDATEVALUE()の中に(式の中で)すべてのものをラップするかもしれません。このプラットフォームにはたくさんの欠点があります。 –

+0

ああ、私はここで何をしているのか分かりませんでした:) DATEVALUE()でできることがあれば、私はorgのオーナーと話します。どうもありがとう! – dvdbrk