Hi,
There are two ways to do this:
If you won't be using the crosstab to total, change your formula to return a string like:
if length ({Times_.TimeIn}) > 10 then
cStr (cDateTime (left ({Times_.TimeIn},instrrev ({Times_.TimeIn},":")-1)))
Else "";
A formula has to return the result as a single datatype. So I added the cStr function to convert the date time to a string and in case there is no valid datetime it returns an empty string.
This may cause problems because now your rows will be sorted as a string and not datetime.
The other way to do this is to format the field display by right clicking your date and going to Format Field.
In the Common tab you will see the Display String editor. In there use the formula like:
If GridRowColumnValue ("Times_.TimeIn") = "00.00.00" Then
""
Else CStr (GridRowColumnValue ("Times_.TimeIn"));
This will keep the sort but change the way the cell appears.