Funkcije za pretvarjanje podatkovnih tipov
Ta razdelek vsebuje krajše opise funkcij, s katerimi pretvorite izraze iz enega podatkovnega tipa v drugega.
Funkcija | Kaj naredi |
---|---|
convert | Izraz pretvori iz enega podprtega podatkovnega tipa v drugega. |
numbertostring | S pomočjo podane maske izraz s celim številom ali realnim številom s plavajočo vejico pretvori v nizovni izraz. |
stringtotime | S pomočjo podane maske nizovni izraz pretvori v časovni izraz. |
timetostring | S pomočjo podane maske časovni izraz pretvori v nizovni izraz. |
is_valid | Določi, ali je podan izraz veljavna vrednost, ki jo je mogoče pretvoriti v podan preprost podatkovni tip. |
convert
convert (source_expr, type_name)
kjer je:Parameter | Opis |
---|---|
source_expr | Izraz kateregakoli podprtega podatkovnega tipa. Ta izraz je pretvorjen v podatkovni tip, ki ste ga podali v type_name. |
type_name | Podatkovni tip, v katerega je pretvorjen niz source_expr. Veljavni vnosi so float, float[ ] (realno število s plavajočo vejico), integer, integer[ ] (celo število), string, string[] (niz), Boolean, Boolean[ ] (logična vrednosti), time in time[ ] (čas). Pomnite, da v primeru, da type_name sledijo kvadratni oklepaji ([ ]), mora biti source_expr prav tako indeksirano polje. Vsak element v indeksiranem polju je pretvorjen v type_name po pravilih, ki veljajo za preprost podatkovni tip. |
Rezultat funkcije convert je odvisen od podatkovnih tipov source_expr in type_name.
Pretvorba iz logične vrednosti
Če je source_expr tipa logične vrednosti, so rezultati funkcije convert naslednji.
Pretvorba iz logične vrednosti v ... | Rezultati |
---|---|
Logična vrednost | Ni spremembe. |
Realno število s plavajočo vejico | Če je logični izraz true, je rezultat 1. Če je logični izraz false, je rezultat 0. |
Celo število | Če je logični izraz true, je rezultat 1. Če je logični izraz false, je rezultat 0. |
Niz | Če je logični izraz true, je rezultat "true". Če je logični izraz false, je rezultat "false". |
Čas | Skladenjska napaka. |
Pretvorba iz realnega števila s plavajočo vejico
Če je source_expr tipa realnega števila s plavajočo vejico, so rezultati funkcije convert naslednji.
Pretvorba iz realnega števila s plavajočo vejico v ... | Rezultati |
---|---|
Logična vrednost | Če je source_expr = 0, je rezultat false. Če je source_expr = 1, je rezultat true. Če source_expr <> 0 ali 1, pride do skladenjske napake. |
Realno število s plavajočo vejico | Ni spremembe. |
Celo število | Pretvori del source_expr s celim številom (tj. odreže vse številke desno od decimalne vejice). Do napake pride, če rezultat ni celo število. |
Niz | Vrne niz s številskimi znaki, ki predstavljajo realno število s plavajočo vejico. |
Čas | Celoštevilski del source_expr uporabi kot število sekund, ki jih naj doda k 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas). Vrne nov čas. UTC (univerzalni koordinirani čas), ki je bil včasih znan kot GMT (čas po Greenwichu), je po vsem svetu standardna referenčna časovna cona. convert (5.3, time) na primer vrne 1/1/1970 00:00:05. |
Pretvorba iz celega števila
Pretvorba iz celega števila v ... | Rezultati |
---|---|
Logična vrednost | Če je source_expr = 0, je rezultat false. Če je source_expr = 1, je rezultat true. Če source_expr <> 0 ali 1, pride do skladenjske napake. |
Realno število s plavajočo vejico | Rezultat je enakovredna vrednost realnega števila s plavajočo vejico. |
Celo število | Ni spremembe. |
Niz | Vrne niz s številskimi znaki, ki predstavljajo celo število. |
Čas | source_expr uporabi kot število sekund, ki jih naj doda k 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas). Vrne nov čas. convert (5, time) na primer vrne 1/1/1970 00:00:05. |
Pretvorba iz niza
Če je source_expr tipa niza, so rezultati funkcije convert naslednji.
Pretvorba iz niza v ... | Rezultati |
---|---|
Logična vrednost | Skladenjska napaka razen, če je source_expr = "true" ali source_expr = "false". (Sprejemljiva je katerakoli kombinacija velikih in malih črk.) |
Realno število s plavajočo vejico | Skladenjska napaka razen, če je source_expr ustrezna predstava vrednosti realnega števila s plavajočo vejico. |
Celo število | Skladenjska napaka razen, če je source_expr ustrezna predstava vrednosti celega števila. |
Niz | Ni spremembe. |
Čas | Napaka v skladnji, razen če je source_expr legitimna predstavitev časovne vrednosti in uporablja format, določen v maski datum/čas za sistem delovnih tokov. |
Pretvorba iz časa
Če je source_expr tipa čas, so rezultati funkcije convert naslednji.
Pretvorba iz časa v ... | Rezultati |
---|---|
Logična vrednost | Skladenjska napaka. |
Realno število s plavajočo vejico | Vrne število sekund med trenutnim sistemskim časom in 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas). Če je na primer SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, float) vrne 28. Če je trenuten sistemski čas nastavljen na časovno cono, drugačno od UTC, funkcija convert izvede potrebne prilagoditve. Med Pacifiškim standardnim časom (PST) in UTC je na primer 8-urna razlika. Če je SysTime = 1/1/1970 00:00:28 PST (pacifiški standardni čas) in je lokalni časovni pas univerzalni koordinirani čas, convert(SysTime, float) vrne 28828.0. 8(ur) * 60(minut) *60(sekund) + 28(sekund) |
Celo število | Vrne število sekund med trenutnim sistemskim časom in 1/1/1970 00:00:00 UTC (univerzalni koordinirani čas). Če je na primer SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, integer) vrne 28. Če je trenuten sistemski čas nastavljen na časovno cono, drugačno od UTC, funkcija convert izvede potrebne prilagoditve. Med PST in UTC je na primer 8-urna razlika. Če je SysTime = 1/1/1970 00:00:28 PST (pacifiški standardni čas) in je lokalni časovni pas pacifiški standardni čas, convert(SysTime, integer) vrne 28828. 8(ur) * 60(minut) *60(sekund) + 28(sekund) |
Niz | Vrne nizovno predstavitev source_expr. Upoštevajte, da ta niz uporablja format, določen v maski datum/čas za sistem delovnih tokov. |
Čas | Ni spremembe |
numbertostring
Funkcija s pomočjo formata, ki ga podate, izraz realnega števila s plavajočo vejico ali celoštevilčni izraz pretvori v nizovni izraz. To funkcijo uporabite, ko želite število prikazati v določenem formatu (na primer $1,000,000). Funkcijo numbertostring lahko uporabite tudi za zaokroževanje števil.
numbertostring (num_exp{, num_mask}neobvezno)
kjer je:Parameter | Opis |
---|---|
num_exp | Izraz z realnim številom s plavajočo vejico ali celoštevilčni izraz. |
num_mask | Številska maska, ki določa format izhoda funkcije numbertostring. Čeprav ni obvezna, vedite, da je funkcija numbertostring v primeru, da je ne vnesete, enaka funkciji convert. |
Številska maska
Številska maska je predloga, ki se uporablja za oblikovanje izhoda funkcije numbertostring. Številska maska je nizovni izraz, ki vsebuje katerokoli veljavno kombinacijo naslednjih komponent.
Komponenta | Pomen |
---|---|
+ (plus) | Ko je prva ali zadnja komponenta maske, predstavlja predznak števila. Ko je na položaju, ki ni prvi ali zadnji, je znak za plus vstavljen točno tam, kjer ga postavite v maski. Na primer: numbertostring (12345, "###+##") vrne 123+45 |
- (minus) | Ko je prva ali zadnja komponenta maske, prikazuje negativen predznak, če je število negativno, ali prikazuje presledek, če je število pozitivno. Ko je na položaju, ki ni prvi ali zadnji, je znak za minus vstavljen točno tam, kjer ga postavite v maski. Na primer: numbertostring (123456789, "###-##-####") vrne 123-45-6789 |
# (lojtra) | Prikazuje števko, če je pomembna. Če maska vsebuje več lojter, kot je pomembnih števk, prve števke dobijo najbolj desne lojtre, druge pa so zapolnjene s presledki. |
0 (ničla) | Prikazuje števko, če je ali ni pomembna. Vrnjene so lahko ničle pred in za drugimi števkami. |
. (decimalna) | Določa, kje se nahaja decimalna vejica. Če to ni podano, se predvideva, da je na desnem koncu maske. Število je zaokroženo tako, da se prilega maski. V maski je dovoljena samo ena decimalna vejica. |
Primeri številskih mask
Spodaj so navedeni izhodni rezultat, ko funkcija numbertostring pretvori naslednja števila: 0, +29, -3344 in 77,88369. Izhodni podatki so oblikovani glede na prikazano številsko masko.
Maska | 0 | +29 | -3344 | 77,88369 |
---|---|---|---|---|
0000 | 0000 | 0029 | 3344 | 0078 |
#### | 29 | 3344 | 78 | |
$#,### | $ | $29 | $3.344 | $78 |
+#### | + | +29 | -3344 | +78 |
-#### | 29 | -3344 | 78 | |
####+ | + | 29+ | 3344- | 78+ |
####- | 29 | 3344- | 78 | |
##.## | . | 29, | Napaka v času izvajanja | 77,88 |
Zaokroževanje števil
numbertostring (Number1, "#,###.###")
3.344,779
is_valid
is_valid (expr, type)
kjer je:Parameter | Opis |
---|---|
expr | Katerikoli izraz. |
type | Preprost podatkovni tip (Boolean (logična vrednost), float (realno število s plavajočo vejico), integer (celo število), string (niz), time(čas)). |
is_valid (str, Boolean)
is_valid ("1.2.3", float)
is_valid (1e20, integer)