Funktionen für Datentypkonvertierung
Dieser Abschnitt enthält eine kurze Beschreibung der Funktionen, die Ausdrücke aus einem Datentyp in einen anderen konvertieren.
Funktion | Verwendungszweck |
---|---|
convert | Konvertiert einen Ausdruck aus einem unterstützten Datentyp in einen anderen. |
numbertostring | Konvertiert einen Ganzzahl- oder Gleitkommaausdruck in einen Zeichenfolgeausdruck unter Verwendung einer angegebenen Maske. |
stringtotime | Konvertiert einen Zeichenfolgeausdruck in einen Zeitausdruck unter Verwendung einer angegebenen Maske. |
timetostring | Konvertiert einen Zeitausdruck in einen Zeichenfolgeausdruck unter Verwendung einer angegebenen Maske. |
is_valid | Ermittelt, ob der angegebene Ausdruck ein gültiger Wert ist, der in den angegebenen einfachen Datentyp konvertiert werden kann. |
convert
convert (source_expr, type_name)
Dabei gilt Folgendes:Parameter | Beschreibung |
---|---|
source_expr | Ein Ausdruck eines beliebigen unterstützten Datentyps. Dieser Ausdruck wird in den in type_name angegebenen Datentyp konvertiert. |
type_name | Der Datentyp, in den source_expr konvertiert wird. Gültige Einträge sind: float, float[ ], integer, integer[ ], string, string[], Boolean, Boolean[ ], time und time[ ]. Wenn auf type_name eckige Klammern ([ ]) folgen, dann muss source_expr auch ein Array sein. Jedes Element im Array wird gemäß den Regeln, die für den einfachen Datentyp gelten, in type_name konvertiert. |
Die Ergebnisse der Funktion convert unterscheiden in Abhängigkeit der Datentypen, die in source_expr und type_name angegeben sind.
Aus dem booleschen Datentyp konvertieren
Wenn der Quellenausdruck (source_expr) vom booleschen Datentyp ist, sieht das Ergebnis der Funktion convert wie folgt aus:
Aus dem booleschen Datentyp konvertieren in ... | Ergebnisse |
---|---|
Boolesch | Keine Änderung. |
Gleitkomma | Ist der boolesche Ausdruck 'true' (wahr), ist das Ergebnis 1. Ist der boolesche Ausdruck 'false' (falsch), ist das Ergebnis 0. |
Ganzzahl | Ist der boolesche Ausdruck 'true' (wahr), ist das Ergebnis 1. Ist der boolesche Ausdruck 'false' (falsch), ist das Ergebnis 0. |
Zeichenfolge | Ist der boolesche Ausdruck 'true' (wahr), ist das Ergebnis 'true'. Ist der boolesche Ausdruck 'false' (falsch), ist das Ergebnis 'false'. |
Zeit | Syntaxfehler. |
Aus dem Gleitkommadatentyp konvertieren
Wenn der Quellenausdruck (source_expr) vom Gleitkommadatentyp ist, sieht das Ergebnis der Funktion convert wie folgt aus:
Aus dem Gleitkommadatentyp konvertieren in ... | Ergebnisse |
---|---|
Boolesch | Bei source_expr = 0 ist das Ergebnis 'false'. Bei source_expr = 1 ist das Ergebnis 'true'. source_expr <> 0 oder 1 führt zu einem Syntaxfehler. |
Gleitkomma | Keine Änderung. |
Ganzzahl | Konvertiert den ganzzahligen Teil von source_expr (d. h. schneidet alle Ziffern rechts vom Dezimalzeichen ab). Wenn das Ergebnis nicht im zulässigen Bereich für ganze Zahlen liegt, tritt ein Fehler auf. |
Zeichenfolge | Ergibt eine Zeichenfolge numerischer Zeichen, die die Gleitkommazahl darstellen. |
Zeit | Verwendet den ganzzahligen Teil von source_expr als Anzahl der Sekunden, die zu 1/1/1970 00:00:00 UTC (Coordinated Universal Time) addiert werden sollen, und gibt die neue Zeit aus. UTC (Coordinated Universal Time; koordinierte Weltzeit) - früher als GMT (Greenwich Mean Time) bezeichnet - ist die weltweite Standard-Referenzzeitzone. Beispiel: convert (5,3, time) gibt 1/1/1970 00:00:05 zurück. |
Aus dem Ganzzahldatentyp konvertieren
Aus dem Ganzzahldatentyp konvertieren in ... | Ergebnisse |
---|---|
Boolesch | Bei source_expr = 0 ist das Ergebnis 'false'. Bei source_expr = 1 ist das Ergebnis 'true'. source_expr <> 0 oder 1 führt zu einem Syntaxfehler. |
Gleitkomma | Ergibt den entsprechenden Gleitkommawert. |
Ganzzahl | Keine Änderung. |
Zeichenfolge | Ergibt eine Zeichenfolge numerischer Zeichen, die die ganze Zahl darstellen. |
Zeit | Verwendet source_expr als Anzahl der Sekunden, die zu 1/1/1970 00:00:00 UTC (Coordinated Universal Time) addiert werden sollen, und gibt die neue Zeit aus. Beispiel: convert (5, time) gibt 1/1/1970 00:00:05 zurück. |
Aus dem Zeichenfolgedatentyp konvertieren
Wenn der Quellenausdruck (source_expr) vom Zeichenfolgedatentyp ist, sieht das Ergebnis der Funktion convert wie folgt aus:
Aus dem Zeichenfolgedatentyp konvertieren in ... | Ergebnisse |
---|---|
Boolesch | Syntaxfehler, es sei denn, source_expr = "true" oder source_expr = "false". (Jede Kombination aus Groß- und Kleinbuchstaben ist zulässig.) |
Gleitkomma | Syntaxfehler, es sei denn, der source_expr ist eine zulässige Darstellung eines Gleitkommawerts. |
Ganzzahl | Syntaxfehler, es sei denn, der source_expr ist eine zulässige Darstellung eines ganzzahligen Werts. |
Zeichenfolge | Keine Änderung. |
Zeit | Syntaxfehler, es sei denn, der source_expr ist eine zulässige Darstellung eines Zeitwerts und verwendet das Format, das in der Datums-/Zeitmaske für das Workflowsystem angegeben ist. |
Aus dem Zeitdatentyp konvertieren
Wenn der Quellenausdruck (source_expr) vom Zeitdatentyp ist, sieht das Ergebnis der Funktion convert wie folgt aus:
Aus dem Zeitdatentyp konvertieren in... | Ergebnisse |
---|---|
Boolesch | Syntaxfehler. |
Gleitkomma | Gibt die Anzahl Sekunden zwischen der aktuellen Systemzeit und time und 1/1/1970 00:00:00 UTC (koordinierte Weltzeit) zurück. Beispiel: bei SysTime = 1/1/1970 00:00:28 UTC gibt convert (SysTime, float) das Ergebnis 28 zurück. Wenn die aktuelle Systemzeit auf eine andere Zeitzone als UTC gesetzt ist, nimmt die Konvertierungsfunktion die erforderlichen Anpassungen vor. Beispiel: Zwischen PST (Pacific Standard Time) und UTC sind 8 Stunden Zeitdifferenz; wenn SysTime = 1/1/1970 00:00:28 PST und die lokale Zeitzone die PST ist, dann gibt convert(SysTime, float) das Ergebnis 28828,0 zurück. 8(Stunden) * 60(Minuten) *60(Sekunden) + 28(Sekunden) |
Ganzzahl | Gibt die Anzahl Sekunden zwischen der aktuellen Systemzeit und time und 1/1/1970 00:00:00 UTC (koordinierte Weltzeit) zurück. Beispiel: bei SysTime = 1/1/1970 00:00:28 UTC gibt convert (SysTime, integer) das Ergebnis 28 zurück. Wenn die aktuelle Systemzeit auf eine andere Zeitzone als UTC gesetzt ist, nimmt die Konvertierungsfunktion die erforderlichen Anpassungen vor. Beispiel: Zwischen PST und UTC sind 8 Stunden Zeitdifferenz; wenn SysTime = 1/1/1970 00:00:28 PST und die lokale Zeitzone die Pacific Standard Time ist, dann gibt convert(SysTime, integer) das Ergebnis 28828 zurück. 8(Stunden) * 60(Minuten) *60(Sekunden) + 28(Sekunden) |
Zeichenfolge | Ergibt eine Zeichenfolgedarstellung von source_expr. Diese Zeichenfolge verwendet das Format, das in der Datums-/Zeitmaske für das Workflowsystem angegeben ist. |
Zeit | Keine Änderung |
numbertostring
Diese Funktion konvertiert einen Gleitkomma- oder ganzzahligen Ausdruck in einen Zeichenfolgeausdruck unter Verwendung des angegebenen Formats. Verwenden Sie diese Funktion, wenn Sie eine Zahl in einem bestimmten Format anzeigen wollen (z. B. $ 1.000.000). Sie können die Funktion numbertostring auch verwenden, um Zahlen abzurunden.
numbertostring (num_exp{, num_mask}opt)
Dabei gilt Folgendes:Parameter | Beschreibung |
---|---|
num_exp | Ein Ausdruck vom Gleitkomma- oder Ganzzahldatentyp. |
num_mask | Eine numerische Maske, die das Format der Ausgabe der Funktion numbertostring bestimmt. Eine numerische Maske ist zwar optional, doch ohne Eingabe einer numerischen Maske entspricht die Funktion numbertostring der Funktion convert. |
Numerische Maske
Eine numerische Maske ist eine Vorlage, die zum Formatieren der Ausgabe der Funktion numbertostring verwendet wird. Eine numerische Maske ist ein Zeichenfolgeausdruck, der eine gültige Kombination der folgenden Komponenten enthält.
Komponente | Bedeutung |
---|---|
+ (Plus) | Wenn dies die erste oder letzte Komponente in der Maske ist, gibt sie das Vorzeichen der Zahl an. An anderen Stellen als an der ersten oder der letzten Stelle wird das Pluszeichen genau an der Stelle in die Ausgabezeichenfolge eingefügt, an der Sie es in der Maske gesetzt haben. Beispiel: numbertostring (12345, "###+##") Ausgabe: 123+45 |
- (Minus) | Wenn dies die erste oder letzte Komponente in der Maske ist, wird ein negatives Vorzeichen angezeigt, wenn die Zahl negativ ist, oder ein Leerzeichen, wenn die Zahl positiv ist. An anderen Stellen als an der ersten oder der letzten Stelle wird das Minuszeichen genau an der Stelle in die Ausgabezeichenfolge eingefügt, an der Sie es in der Maske gesetzt haben. Beispiel: numbertostring (123456789, "###-##-####") Ausgabe: 123-45-6789 |
# (Nummernzeichen) | Zeigt eine Ziffer an, wenn diese signifikant ist. Wenn die Maske mehr Nummernzeichen enthält, als es signifikante Ziffern gibt, werden den Nummernzeichen von rechts beginnend Ziffern zugeordnet und überschüssige Nummernzeichen links bleiben eventuell leer. |
0 (null) | Zeigt eine Ziffer an, unabhängig davon, ob diese signifikant ist; dies kann zu führenden und abschließenden Nullen führen. |
. (dezimal) | Bestimmt, wo das Dezimalzeichen steht. Ohne Angabe wird angenommen, dass das Dezimalzeichen am rechten Ende der Maske steht. Die Zahl wird abgerundet, sodass sie in die Maske passt. In einer Maske ist nur ein Dezimalzeichen zulässig. |
Beispiele für numerische Masken
Im Folgenden ist die jeweilige Ausgabe angegeben, die sich ergibt, wenn die Funktion numbertostring die folgenden Zahlen konvertiert: 0, +29, -3344 und 77,88369. Die Ausgabe wird entsprechend der angegebenen numerischen Masken formatiert.
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. | Laufzeitfehler | 77.88 |
Zahlen abrunden
numbertostring (Number1, "#,###.###")
3,344.779
is_valid
is_valid (expr, type)
Dabei gilt Folgendes:Parameter | Beschreibung |
---|---|
expr | Ein beliebiger Ausdruck. |
type | Ein einfacher Datentyp (boolesch, Gleitkomma, Ganzzahl, Zeichenfolge, Zeit). |
is_valid (str, Boolean)
is_valid ("1.2.3", float)
is_valid (1e20, integer)