When you create a table that supports column filtering, the default behavior for filtering on dates is to compare the date directly. This means that if the date in the database has a time component the row will not match and no results will be found. If you don't need to display the time along with the date in the table then you can just put a trunc(...) around the date in the original query. If you do need to display the time then you can add another view attribute to your query that outputs the trunc'd version of the date. The new column will not be displayed but will be used for sorting and filtering. The af:column component has a sortProperty attribute that usually contains the column attribute name for the column displayed below it. This does not have to be the case however. The sortProperty can be set to any column in the view object so that when you put a value in the filter field it filters and sorts on a different column then the one displayed below it. Set the sortProperty for the date/time column to the date only column and you will get the desired behavior. When you filter on a date it will return all rows with that date regardless of the time portion of the date.
There is another way to accomplish this that will make every Date filter within your application time agnostic so that developers do not need to add this extra column every time they want to filter on the date portion of a date/time column.To do this you need to create a custom SQL builder class that extends OracleSQLBuilderImpl and override the getFormattedLHSCompareFragment method (Left Hand Side Compare Fragment) This is called whenever filtering is performed. In this method add the trunc(...) around the value. Sample code is shown below.
This class is activated by adding a JVM parameter on startup (jbo.SQLBuilder)