Det ville være meget bedre, hvis datoerne blev gemt som datoer. At gemme dem som tal i stedet for strenge introducerer et andet sæt problemer.
Hvis du er helt fastlåst med datoer gemt som strenge, for at tillade indekser på kolonnerne at blive brugt, skal du konvertere de datoer, du bruger som parametre som strenge i det passende format og derefter stole på, at sortering af strenge i det pågældende format matcher den forventede sorteringsrækkefølge af faktiske datoer. Hvis du nogensinde sammenligner strengen til dato eller med et tal, vil du få implicit datatypekonvertering, som i bedste fald vil føre til ydeevneproblemer, fordi indekser ikke kan bruges og i værste fald vil generere forkerte resultater eller fejl.
Forudsat at du undgår datatypekonvertering, vil ydeevneproblemerne sandsynligvis opstå som følge af, at optimeringsværktøjet har meget svært ved at estimere kardinalitet, når du bruger den forkerte datatype. Oracle ved for eksempel, at der er 365 dage (eller 8760 timer eller 525600 minutter) mellem 1/1/2012 og 1/1/2013. På den anden side er der milliarder af mulige strenge mellem '20120101000000' og '20130101000000'. Det kan få optimeringsværktøjet til ikke at bruge et indeks, når du ønsker det (eller omvendt), til at bruge den forkerte slags join osv.