>CASE ; > BETWEEN(VAL(SUBSTR(m.FormatFieldValue,1,4)),1900,2050) ; > AND BETWEEN(VAL(SUBSTR(m.FormatFieldValue,5,2)),1,12) ; > AND BETWEEN(VAL(SUBSTR(m.FormatFieldValue,7,2)),1,31) > oDetails.FieldVal = ConvertFormat('D8',m.FormatFieldValue) >Seems to me you could just use CTOD() with an appropriate SET DATE. If you get a date back, it's good. If you get the empty string, it's no goo.