Implicitna pretvorba
Implicitne pretvorbe rezultatov izrazov se zgodijo med časom izvajanja za določene kombinacije podatkovnih tipov.
Implicitna pretvorba se na primer zgodi, če je za podatkovno polje vrste realnega števila s plavajočo vejico kot začetna vrednost podana celoštevilčna vrednost. Vedite, da znotraj izraza ni implicitne pretvorbe iz nizovne vrednosti v časovno vrednost. Za eksplicitno pretvorbo nizovne vrednost v časovno vrednost morate uporabiti funkcijo convert ali funkcijo stringtotime.
Znotraj kompleksnega izraza do implicitne pretvorbe pride tako, da podatkovni tip argumenta ustreza zahtevam operatorja ali funkcije. Funkcija substr na primer za argumenta začetne pozicije in dolžine uporablja celoštevilčni vrednosti. Če za ta argumenta podate vrednosti realnega števila s plavajočo vejico 2,5 in 1,0, sta implicitno pretvorjeni v celoštevilčno vrednosti 2 in 1, preden je izraz ovrednoten.
Implicitne pretvorbe se v času izvajanja dogajajo za naslednje kombinacije podatkovnih tipov:
Realno število s plavajočo vejico v celo število
Obrezane do vse števke desno od decimalne vejice v realnem številu s plavajočo vejico. Če za začetno vrednost podatkovnega polja celega števila podate 123,4567, je vrednost polja pri inicializaciji nastavljena na 123.
Celo število v realno število s plavajočo vejico
Zadnji števki celega števila sta dodana decimalna vejica in 0.
V kompleksnem izrazu, ki vsebuje vrednost realnih števil s plavajočo vejico in celoštevilske vrednosti, do implicitne pretvorbe pride samo, če operator zahteva, da sta obe vrednosti enakega podatkovnega tipa. V tem primeru je celoštevilčna vrednost v podatkovni tip realnega števila s plavajočo vejico pretvorjena pred vrednotenjem izraza. Če na primer podate 1.5 + 2, je 2 pretvorjen v 2.0.