Salesforceの数式項目は別の項目の値を指定した条件で変換できる便利な項目です。
通常、日付時間型の項目を日付型に変換したい場合は「DATEVALUE関数」を使用して変換します。
この「DATEVALUE関数」を使用しなくても次のように戻り値が日付型なら日付時間項目をそのまま指定する方法でも変換ができてしまいます。
このように問題なく変換されているように見えます。
しかし、この方法ではきちんと日付型に変換できていません。
それは変換後の項目で並び替えを行うと確認できます。
昇順で並び替え
降順で並び替え
このように同じ値であるにもかかわらず元となった日付時間型の値と同じように並び替えが行われます。表示上は時間部分が除外されているように見えますが、内部では時間部分も保持されたままなのだと思われます。
この問題はきちんと「DATEVALUE関数」を使用して変換することで防ぐことができます。
DATEVALUE関数で日付型に変換することで、同じ日付の並び順が変更されないようになります。
昇順で並び替え
降順で並び替え
並び替えが正常に行われないのはビューの操作時に影響があるだけでなく、レポート使用時にも影響が出てしまったり、Force.com開発で使用するSOQLのOrder Byによる並び替えも正常に実行できなくなります。
以上のような問題を回避するために数式項目による型変換を行う場合は、用意された型変換の関数を使用するようにした方がいいと思います。