In diesem Abschnitt erfahren Sie, wie Sie das dateTime-Format mithilfe einer Zeichenfolge von Musterbuchstaben festlegen.
Bei der Umwandlung eines Datums oder einer Uhrzeit in eine Zeichenfolge muss ein Formatmuster angewendet werden, über das die Umwandlung gesteuert wird. Verwenden Sie dieses Formatmuster entweder für die Umwandlung eines Datums oder einer Uhrzeit in eine Zeichenfolge oder für die Auswertung einer Zeichenfolge zur Umwandlung in ein Datum oder eine Uhrzeit.
Während der Konvertierung (z. B. eines Datum/Zeit-Formats in eine Zeichenfolge) wird ein Muster oder eine Gruppe von Tokens durch die entsprechende Quelle ersetzt. Aus dem nachfolgenden Diagramm geht hervor, wie ein Muster zum Formatieren einer Datum/Zeit-Quelle verwendet wird, um eine Zeichenfolgeausgabe zu erzeugen.
Beim Auswerten einer Zeichenfolge (z. B. bei der Umwandlung der Zeichenfolge in ein Datum/Zeit-Format) wird das Muster oder die Gruppe von Tokens verwendet, um zu ermitteln, welcher Teil des Datum/Zeit-Zielformats durch welchen Teil der Zeichenfolge dargestellt wird. Im folgenden Diagramm wird gezeigt, wie das funktioniert.
Das Ausdrucksmuster wird wie folgt definiert:
In der folgenden Tabelle sind die Zeichen aufgelistet, die in einem Muster zur Formatierung bzw. Auswertung von Zeichenfolgen für ein Datum/Zeit-Format verwendet werden können. Nach der Tabelle folgen einige Anmerkungen, die weitere Informationen zu den Beispielen in der Tabelle enthalten.
Symbol | Bedeutung | Darstellung | Beispiele |
---|---|---|---|
a | Kennzeichnung für Vormittag (AM) oder Nachmittag (PM) | Text | Eingabe: am, AM, pm, PM. Ausgabe: AM oder PM |
d | Tag in Monat (1-31) | Zahl | 1, 20 |
dd | Tag in Monat (01-31) | Zahl | 01, 31 |
D | Tag in Jahr (1-366) | Zahl | 3, 80, 100 |
DD | Tag in Jahr (01-366) | Zahl | 03, 80, 366 |
DDD | Tag in Jahr (001-366) | Zahl | 003 |
e | Tag in Woche (1-7)1 | Nummer | 2 |
EEE | Tag in Woche1 | Text | Di |
EEEE | Tag in Woche1 | Text | Dienstag |
F | Wochentag in Monat (1-5)2 | Zahl | 2 |
G | Jahrhundert | Text | v. Chr oder n. Chr |
h | Stunde in AM oder PM (1-12) | Zahl | 6 |
hh | Stunde in AM oder PM (01-12) | Zahl | 06 |
H | Stunde des Tages im 24-Stunden-Format (0-23)3 | Zahl | 7 |
HH | Stunde des Tages im 24-Stunden-Format (00-23)3 | Zahl | 07 |
I | ISO8601 Datum/Zeit (bis jjjj-MM-tt'T'HH:mm:ss.SSSZZZ)4 | Text | 2006-10-07T12:06:56.568+01:00 |
IU | ISO8601 Datum/Zeit (ähnlich wie I, aber ZZZ mit Ausgabe "Z", wenn die Zeitzone +00:00 ist)4 | Text | 2006-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z |
k | Stunde des Tages im 24-Stunden-Format (1-24)3 | Zahl | 8 |
k | Stunde des Tages im 24-Stunden-Format (01-24)3 | Zahl | 08 |
K | Stunde in AM oder PM (0-11) | Zahl | 9 |
KK | Stunde in AM oder PM (00-11) | Zahl | 09 |
m | Minute | Zahl | 4 |
mm | Minute | Zahl | 04 |
M | Monatszahl | Zahl | 5, 12 |
MM | Monatszahl | Zahl | 05, 12 |
MMM | Monatsname | Text | Jan, Feb |
MMMM | Monatsname | Text | Januar, Februar |
s | Sekunden | Zahl | 5 |
ss | Sekunden | Zahl | 05 |
S | Dezisekunde5 | Zahl | 7 |
SS | Hundertstelsekunde5 | Zahl | 70 |
SSS | Millisekunde5 | Zahl | 700 |
SSSS | 0,0001 Sekunde5 | Zahl | 7000 |
SSSSS | 0,00001 Sekunde5 | Zahl | 70000 |
SSSSSS | 0,000001 Sekunde5 | Zahl | 700000 |
T | ISO8601 Uhrzeit (bis HH:mm:ss.SSSZZZ)4 | Text | 12:06:56.568+01:00 |
TU | ISO8601 Uhrzeit (ähnlich wie T, aber Zeitzone +00:00 wird durch 'Z' ersetzt)4 | Text | 12:06:56.568+01:00, 15:42:12.000Z |
w | Woche in Jahr6 | Zahl | 7, 53 |
ww | Woche in Jahr6 | Zahl | 07, 53 |
W | Woche in Monat7 | Zahl | 2 |
yy | Jahr8 | Zahl | 06 |
yyyy | Jahr8 | Zahl | 2006 |
YY | Jahr: nur mit Woche in Jahr verwenden6 | Zahl | 06 |
YYYY | Jahr: nur mit Woche in Jahr verwenden6 | Zahl | 2006 |
zzz | Zeitzone (abgekürzter Name) | Text | GMT |
zzzz | Zeitzone (vollständiger Name) | Text | Greenwich Mean Time |
Z | Zeitzone (+/-n) | Text | +3 |
ZZ | Zeitzone (+/-nn) | Text | +03 |
ZZZ | Zeitzone (+/-nn:nn) | Text | +03:00 |
ZZZU | Zeitzone (wie ZZZ, "+00:00" wird durch "Z" ersetzt) | Text | +03:00, Z |
ZZZZ | Zeitzone (GMT+/-nn:nn) | Text | GMT+03:00 |
ZZZZZ | Zeitzone (wie ZZZ, aber ohne Doppelpunkt) (+/-nnnn) | Text | +0300 |
' | Auslassung für Text | 'Benutzertext' | |
" | (zwei einfache Anführungszeichen) einfaches Anführungszeichen in Text mit Escapezeichen | 'o"clock' |
Die Darstellung des Datum/Zeit-Objekts richtet sich danach, welche Symbole Sie festlegen.
Wenn Sie das y-Symbol verwenden, wird keine Anpassung ausgeführt. Für Daten um das Jahresende herum könnten unvorhersehbare Ergebnisse auftreten. Die Zeichenfolge "2005 01 Montag" ist beispielsweise wie folgt formatiert:
Wenn Ihre Werte für Datum/Zeit dem ISO8601:2000-Standard zur 'Darstellung von Datum und Uhrzeit' entsprechen, sollten Sie die Verwendung der Formatierungssymbole I und T in Erwägung ziehen, die der folgenden Teilmenge des ISO8601-Standards entsprechen.
Verwenden Sie die Formatierungssymbole I und T nur eigenständig:
Die folgende Tabelle zeigt, wie sich das Ausgabeformat auf den logischen Datentyp bezieht.
Logischer Modelldatentyp | ESQL-Datentyp | Ausgabeformat |
---|---|---|
xsd:dateTime | TIMESTAMP oder GMTTIMESTAMP | jjjj-MM-tt'T'HH:mm:ss.SSSZZZ |
xsd:date | DATE | jjjj-MM-tt |
xsd:gYear | INTERVAL | yyyy |
xsd:gYearMonth | INTERVAL | jjjj-MM |
xsd:gMonth | INTERVAL | --MM |
xsd:gmonthDay | INTERVAL | --MM-dd |
xsd:gDay | INTERVAL | ---dd |
xsd:time | TIME / GMTTIME | 'T'HH:mm:ss.SSSZZZ |
Ein Element oder Attribut des logischen Typs xsd:dateTime oder xsd:time, das eine Datum/Zeit-Angabe als Zeichenfolge enthält, kann die UTC-Zeit (Coordinated Universal Time) angeben, indem entweder das Symbol Z oder Zeitzone +00:00 verwendet wird. Bei der Eingabe erkennt der MRM-Parser das UTC-Format solcher Elemente und Attribute. Bei der Ausgabe können Sie über die Eigenschaft Standardformat für Datum/Zeit verwenden des Elements oder Attributs angeben, ob Z oder +00:00 angezeigt wird. Alternativ können Sie das UTC-Eingabeformat beibehalten, indem Sie die Nachrichtengruppeneigenschaft Benutzen Sie das UTC-Format der Eingabe für die Ausgabe auswählen. Wenn diese Eigenschaft ausgewählt ist, wird das UTC-Format unverändert in die Ausgabenachricht übernommen und überschreibt das durch die Datum/Zeit-Formateigenschaft implizierte Format.
Wenn der Broker in einer anderen Zeitzone als GMT (Greenwich Mean Time, Westeuropäische Zeit) ausgeführt wird, berechnet er den Sommerzeit-Ausgleich auf Basis der an ihn durch die CAST-Funktion übergebenen Zeiten. Damit der Ausgleich von CAST richtig berechnet wird, muss der an CAST übergebenen Zeit eine Zeitzone als Z-Parameter übergeben werden. Wenn dem übergebenen Wert keine Zeitzone zugeordnet ist, wird die Zeit in GMT-Zeit konvertiert; sie wird nicht als lokale Zeitmarke behandelt.
Wenn Sie außerdem mit CAST eine Zeichenfolge in einen Zeitwert umsetzen, wird der DST-Ausgleich mit dem aktuellen Systemdatum berechnet. Wenn Sie eine Zeichenfolge in eine Zeitvariable umsetzen und die Sommerzeit für ein bestimmtes Datum berechnen möchten, müssen Sie auch das Datum angeben.
DECLARE castTime TIME; SET castTime = CAST (timeValue AS TIME FORMAT timePattern)Die Zeit wird nicht erneut in GMT konvertiert, wenn die castTime-Variable in einem nachfolgenden Code verwendet wird. Beispiel:
CAST(castDate, castTime AS GMTTIMESTAMP);
Die folgende Tabelle enthält Beispiele für Datum/Zeit-Formate.
Formatmuster | Ergebnis |
---|---|
"yyyy.MM.dd 'um' HH:mm:ss ZZZ" | 2006.07.10 um 15:08:56 -05:00 |
"EEE, MMM d, "yy" | Mit, Juli 10, '06 |
"h:mm a" | 8:08 PM |
"hh Uhr" a, ZZZZ" | 09 Uhr AM, GMT+09:00 |
"K:mm a, ZZZ" | 9:34 AM, -05:00 |
"yyyy.MMMMM.dd hh:mm aaa" | 1996.Juli.10 12:08 PM |