Funksjoner for datatypekonvertering
Denne delen inneholder korte beskrivelser av funksjonene som konverterer uttrykk fra én datatype til en annen.
Funksjon | Hva den gjør |
---|---|
convert | Konverterer et uttrykk fra én datatype som støttes, til en annen. |
numbertostring | Konverterer et heltalls- eller flytuttrykk til et strenguttrykk ved hjelp av en oppgitt maske. |
stringtotime | Konverterer et strenguttrykk til et tidsuttrykk ved hjelp av en oppgitt maske. |
timetostring | Konverterer et tidsuttrykk til et strenguttrykk ved hjelp av en oppgitt maske. |
is_valid | Fastslår om det oppgitte uttrykket er en gyldig verdi som kan konverteres til den oppgitte enkle datatypen. |
convert
convert (source_expr, type_name)
der:Parameter | Beskrivelse |
---|---|
source_expr | Et uttrykk av en hvilken som helst datatype som støttes. Dette uttrykket konverteres til datatypen som er oppgitt i type_name. |
type_name | Datatypen som source_expr konverteres til. Gyldige oppføringer er flytetall, flytetall[ ], heltall, heltall[ ], streng, streng[], boolsk, boolsk[ ], tid og tid [ ]. Legg merke til at hvis type_name etterfølges av hakeparenteser ([ ]), må source_expr også være en matrise. Hvert element i matrisen konverteres til type_name av reglene som gjelder for den enkle datatypen. |
Resultatene av konverteringsfunksjonen varierer avhengig av datatypene for source_exp og type_name.
Konvertere fra boolsk
Hvis source_expr er av typen boolsk, er resultatene fra konverteringsfunksjonen følgende.
Konverter fra boolsk til... | Resultater |
---|---|
boolsk | Ingen endring. |
flytetall | Hvis det boolske uttrykket er sant, er resultatet 1. Hvis det boolske uttrykket er usant, er resultatet 0. |
heltall | Hvis det boolske uttrykket er sant, er resultatet 1. Hvis det boolske uttrykket er usant, er resultatet 0. |
streng | Hvis det boolske uttrykket er sant, er resultatet "sant" (true). Hvis det boolske uttrykket er usant, er resultatet "usant" (false). |
tid | Syntaksfeil. |
Konvertere fra flytetall
Hvis source_expr er av typen flytetall, er resultatene fra konverteringsfunksjonen følgende.
Konverter fra flytetall til... | Resultater |
---|---|
boolsk | Hvis source_expr = 0, er resultatet usant. Hvis source_expr = 1, er resultatet sant. Hvis source_expr <> 0 eller 1, fører det til en syntaksfeil. |
flytetall | Ingen endring. |
heltall | Konverterer heltallsdelen av source_expr (det vil si, avkorter alle tall til høyre for desimaltegnet). Det oppstår en feil hvis resultatet ikke er innenfor verdiområdet for heltall. |
streng | Fører til en streng med numeriske tegn som representerer flytetallet. |
tid | Bruker heltallsdelen av source_expr som antallet sekunder som skal legges til 01.01.1970 00:00:00 UTC (Coordinated Universal Time). Returnerer det nye tidspunktet. UTC (Coordinated Universal Time) UTC ble tidligere kalt GMT (Greenwich Mean Time), og er en standard verdensomspennende referansetidssone. Konvertering av for eksempel (5.3, tid) returnerer 01.01.1970 00:00:05. |
Konvertere fra heltall
Konverter fra heltall til... | Resultater |
---|---|
boolsk | Hvis source_expr = 0, er resultatet usant. Hvis source_expr = 1, er resultatet sant. Hvis source_expr <> 0 eller 1, fører det til en syntaksfeil. |
flytetall | Fører til den ekvivalente flytetallsverdien. |
heltall | Ingen endring. |
streng | Fører til en streng med numeriske tegn som representerer heltallet. |
tid | Bruker source_expr som antallet sekunder som skal legges til 01.01.1970 00:00:00 UTC (Coordinated Universal Time). Returnerer det nye tidspunktet. Konvertering av for eksempel (5, tid) returnerer 01.01.1970 00:00:05. |
Konvertere fra streng
Hvis source_expr er av typen streng, er resultatene fra konverteringsfunksjonen følgende.
Konverter fra streng til... | Resultater |
---|---|
boolsk | Syntaksfeil, med mindre source_expr = "sann" eller source_expr = "usann". (Enhver kombinasjon av store og små bokstaver godtas.) |
flytetall | Syntaksfeil, med mindre source_expr er en gyldig representasjon av en flytetallssverdi. |
heltall | Syntaksfeil, med mindre source_expr er en gyldig representasjon av en heltallsverdi. |
streng | Ingen endring. |
tid | Syntaksfeil, med mindre source_expr er en gyldig representasjon av en tidsverdi og bruker formatet som er oppgitt i dato/tid-masken for arbeidsflytsystemet. |
Konvertere fra tid
Hvis source_expr er av typen tid, er resultatene fra konverteringsfunksjonen følgende.
Konverter fra tid til... | Resultater |
---|---|
boolsk | Syntaksfeil. |
flytetall | Returnerer antallet sekunder mellom gjeldende systemtid og 01.01.1970 00:00:00 UTC (Coordinated Universal Time). Hvis for eksempel SysTime = 01.01.1970 00:00:28 UTC, returnerer convert (SysTime, flytetall) 28. Hvis den gjeldende systemtiden er satt til en annen tidssone enn UTC, foretar konverteringsfunksjonen den nødvendige justeringen. Det er for eksempel 8 timers forskjell mellom Pacific Standard Time (PST) og UTC. Hvis SysTime = 1/1/1970 00:00:28 PST og lokal tidssone er PST, vil convert(SysTime, float) returnere 28828.0. 8(timer) * 60(minutter) *60(sekunder) + 28(sekunder) |
heltall | Returnerer antallet sekunder mellom gjeldende systemtid og 01.01.1970 00:00:00 UTC (Coordinated Universal Time). Hvis for eksempel SysTime = 01.01.1970 00:00:28 UTC, returnerer convert (SysTime, heltall) 28. Hvis den gjeldende systemtiden er satt til en annen tidssone enn UTC, foretar konverteringsfunksjonen den nødvendige justeringen. Det er for eksempel 8 timers forskjell mellom PST og UTC. Hvis SysTime = 1/1/1970 00:00:28 PST og lokal tidssone er Pacific Standard Time, vil convert(SysTime, integer) returnere 28828. 8(timer) * 60(minutter) *60(sekunder) + 28(sekunder) |
streng | Fører til en strengrepresentasjon av source_expr. Legg merke til at denne strengen bruker formatet som er oppgitt i dato-/klokkeslettmasken for arbeidsflytsystemet. |
tid | Ingen endring. |
numbertostring
Denne funksjonen konverterer et flytetalls- eller heltallsuttrykk til et strenguttrykk ved hjelp av formatet du oppgir. Bruk denne funksjonen når du vil vise et tall i et bestemt format (for eksempel kr. 1 000 000). Du kan også bruke funksjonen numbertostring for å avrunde tall.
numbertostring (num_exp{, num_mask}opt)
der:Parameter | Beskrivelse |
---|---|
num_exp | Et uttrykk av typen flytetall eller heltall. |
num_mask | En numerisk maske som fastslår formatet til utdataene for funksjonen numbertostring. Selv om funksjonen er valgfri, må du være oppmerksom på at hvis du ikke oppgir en numerisk maske, er funksjonen numbertostring lik konverteringsfunksjonen. |
Numerisk maske
En numerisk maske er en mal som brukes til å formatere utdataene til funksjonen numbertostring. En numerisk maske er et strenguttrykk som inneholder enhver gyldig kombinasjon av de følgende komponentene.
Komponent | Betydning |
---|---|
+ (pluss) | Når den første eller siste komponenten i masken, vises tegnet til tallet. Når i en annen posisjon enn den første eller siste, settes plusstegnet inn i utdatastrengen nøyaktig der du plasserer den i masken. Eksempel: numbertostring (12345, "###+##") gir 123+45 |
- (minus) | Når den første eller siste komponenten i masken, vises det et negativt tegn hvis tallet er negativt, eller et mellomrom hvis tallet er positivt. Når i en annen posisjon enn den første eller siste, settes minustegnet inn i utdatastrengen nøyaktig der du plasserer den i masken. Eksempel: numbertostring (123456789, "###-##-####") gir 123-45-6789 |
# (nummertegn) | Viser et siffer hvis det er signifikant. Når masken inneholder flere #-tegn enn signifikante sifre, mottar #-tegnene lengst til høyre sifre først, og overskytende #-tegn fylles med tomrom. |
0 (null) | Viser et siffer enten det er signifikant eller ikke. Det kan føre til både foranstilt og etterstilt null. |
. (desimal) | Fastslår hvor desimaltegnet plasseres. Hvis ikke oppgitt, antas det at desimaltegnet er på høyre side av masken. Tallet rundes av slik at det passer i masken. Det er bare tillatt med ett desimaltegn i en maske. |
Eksempler på numeriske masker
Nedenfor finner du de resulterende utdataene når funksjonen numbertostring konverterer de følgende tallene: 0, +29, -3344 og 77.88369. Utdataene formateres i henhold til de numeriske maskene som vises.
Maske | 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. | Kjøretidsfeil | 77.88 |
Avrunde tall
numbertostring (Number1, "#,###.###")
3,344.779
is_valid
is_valid (expr, type)
der:Parameter | Beskrivelse |
---|---|
expr | Et hvilket som helst uttrykk. |
type | En enkel datatype (boolsk, flytetall, heltall, streng, tid). |
bis_valid (str, boolsk)
is_valid ("1.2.3", flytetall)
his_valid (1e20, heltall)