Implisitt konvertering
Implisitte konverteringer av uttrykksresultater skjer i kjøretid for bestemte datatypekombinasjoner.
Implisitte konverteringer skjer for eksempel hvis et heltallsuttrykk oppgis som den innledende verdien for et datafelt som er av typen flytetall. Legg merke til at det i et uttrykk ikke finnes implisitt konvertering av en strengverdi til en tidsverdi. Du må bruke funksjonen convert eller stringtotime til å konvertere strengverdien til en tidsverdi eksplisitt.
I et komplekst uttrykk forekommer implisitt konvertering slik at datatypen til argumentet oppfyller kravene til en operator eller funksjon. Funksjonen substr tar for eksempel heltallsverdier for startposisjonen og lengdeargumentene. Hvis du oppgir flytetallsverdiene 2.5 og 1.0 som disse argumentene, konverteres de implisitt til heltallsverdiene 2 og 1 før uttrykket evalueres.
Implisitt konvertering forekommer ved kjøretid for følgende datatypekombinasjoner:
Flytetall-til-heltall
Alle sifre til høyre for desimaltegnet i flytpunktnummeret avkortes. Hvis du for eksempel oppgir 123.4567 som den innledende verdien for et heltallsdatafelt, angis datafeltets verdi til 123 ved aktivering.
Heltall-til-flytetall
Et desimaltegn og 0 legges ved etter det siste sifferet til heltallet.
I et komplekst uttrykk som inneholder både flytetalls- og heltallsverdier, forekommer implisitt konvertering hvis en operator krever at verdiene har samme datatype. I dette tilfellet konverteres heltallsverdien til flytetallsdatatypen før uttrykket evalueres. Hvis du for eksempel oppgir 1.5 + 2, konverteres 2 til 2.0.