Im Sinne dieser Referenz gilt: Datum bezieht sich nur auf Jahr, Monate, Tage (und Quartale, Wochen) und deren Kombinationen. Zeit bezieht sich auf Stunden, Minuten und Sekunden und deren Kombinationen. Für die Kombination von Datum und Uhrzeit verwenden wir strikt datetime.
Siehe Datums- und Uhrzeitfunktionen, die von Transformations-Scripting übernommen wurden.
Datumsstrings
Die Parameter für die Datumszeichenfolge werden absolut (dd.MM.yyyy, yyyy-MM-dd oder entsprechend den Domäneneinstellungen) oder relativ (Zeitvariablen) von Operatoren eingegeben:
date +|- n[d|w|m|q|y]
wobei
Datum ist Datum im Format dd.MM.yyyy oder yyyy-MM-dd oder eines der folgenden Jahre: aktuelles Jahr, aktueller Monat, aktuelles Quartal, aktuelle Woche, tatsächlicher Tag, jetzt
- n steht für die Anzahl von:
d
Tage,w
Wochen,m
Monate,q
Quartale odery
Jahre.
Beispiele:
'2011-01-01 + 1q - 2m + 1d' means Jan 1, 2011 + 1 quartal - two months + 1 day, that represents Feb 2, 2011 'actualYear + 1m + 1d' , (used on 8 Mar, 2011) means 1 Feb, 2011 + 1 month + 1 day, that represents 2 Feb, 2011 as well
Eine andere Methode zum Erstellen der Datumszeichenfolgen ist wie folgt:
date(day: dd, month: MM, year: YYYY) date(d: dd, m: MM, y: YYYY) date(week: w, year: YYYY) date(quarter: q, year: YYYY)
Datetime Kontext ändern
Was ist der Datetime-Kontext? Betrachten Sie folgendes Beispiel:
| 01/2011 | 02/2011 | 03/2011 |
Formelindikator | 1000 | 1200 | 1300 |
Die Formel wird für jede Spalte ausgewertet - in diesem Beispiel werden in Spalten Werte für bestimmte Monate ausgewertet. Während der Auswertung des Werts 1000 war der Datums- / Zeit-Kontext 01/2011, dann während der Verarbeitung des Wertes 1200 der Kontext 02/2011 usw.
Funktion | Beschreibung |
---|---|
| Ändert den Kontext des ausgewerteten Ausdrucks in dateString date. Beispiel: dateAt('2011-01-01', { i1 = M_NAME_1 i2 = M_NAME_2 if (i1 > i2) { return i1; } return i2; }); |
| Ändert den Datumskontext des Ausdrucks und wertet ihn im angegebenen Intervall aggregiert von - bis aus. Beispiel: dateInterval('2011-01-01', '2011-12-31' { i1 = M_NAME_1 i2 = M_NAME_2 if (i1 > i2) { return i1; } return i2; }); Die Werte für die Indikatoren M_NAME_1 und M_NAME_2 werden für den gesamten Zeitraum zusammengefasst. |
| Ändert den Kontext des ausgewerteten Ausdrucks in timeString-Datum. Beispiel: timeAt('13:33:23', { i1 = M_NAME_1 i2 = M_NAME_2 if (i1 > i2) { return i1; } return i2; }); |
| Ändert den Zeitkontext des Ausdrucks und wertet ihn im angegebenen Intervall aggregiert von - bis aus. Beispiel: timeInterval('00:00:01', '23:59:59' { i1 = M_NAME_1 i2 = M_NAME_2 if (i1 > i2) { return i1; } return i2; }); Die Werte für die Indikatoren M_NAME_1 und M_NAME_2 werden für den gesamten Zeitraum zusammengefasst. |
| Ändert den Kontext des ausgewerteten Ausdrucks in date String-Daten - aggregiert nach der definierten Periode {DAY, D, WOCHE, W, MONAT, M, JAHR, Y}. |
| Ändert den Datumskontext des Ausdrucks und wertet ihn im angegebenen Intervall aggregiert von - bis aus. Die Aggregation nach der definierten Periode {DAY, D, WOCHE, W, MONAT, M, JAHR, Y} wird ebenfalls durchgeführt. |
Object minus(String date, period, int) | Zieht den angegebenen Zeitraum (Jahre, Monate, Wochen, Tage) vom festgelegten Datumswert ab. minus(date(firstValue('L_DATE')), 'days', 20) //subtracts 20 days from the date value |
Object minus(String time, period, int) | Addiert die Menge des angegebenen Zeitraums (Jahre, Monate, Wochen, Tage) zum definierten Datumswert. minus(time(firstValue('L_TIME')), 'minutes', 30) //subtracts 30 minutes from the time value |
Object plus(String date, period, int) | Addiert die Menge des angegebenen Zeitraums (Jahre, Monate, Wochen, Tage) zum definierten Datumswert. plus(date(firstValue('L_DATE')), 'days', 20) //adds 20 days to the date value |
Object plus(String time, period, int) | Fügt die Anzahl der angegebenen Zeiträume (Stunden, Minuten, Sekunden) zum definierten Datumswert hinzu. plus(time(firstValue('L_TIME')), 'seconds', 50) //adds 50 seconds to the time value |
| Ändert den Kontext des ausgewerteten Ausdrucks in timeString time - aggregiert nach der definierten Periode {HOUR, H, MINUTE, SECOND}. |
| Ändert den Zeitkontext des Ausdrucks und wertet ihn im angegebenen Intervall aggregiert von - bis aus. Die Aggregation um den definierten Zeitraum {HOUR, H, MINUTE, SECOND} wird ebenfalls durchgeführt. |
| Wertet den Ausdruck ohne Datumszeitintervall aus. |
Veraltete Funktionen
Diese Funktionen können in weiteren Veröffentlichungen entfernt werden
Funktion | Beschreibung |
---|---|
| Lädt den Wert des Indikators zum angegebenen Datum. |
| Lädt den Wert des Indikators zu einem bestimmten Datum, aggregiert für N frühere Stufen. |
| Lädt den Wert des kumulierten Indikators für das angegebene Datumsintervall. |
| Lädt den Wert des kumulativen Indikators für ein bestimmtes Datums-Intervall, das für N vorherige Ebenen aggregiert wurde. |
Erweiterte Funktionen
Funktion | Beschreibung | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Diese Funktion addiert schrittweise den aktuellen Wert zum kumulierten Wert. Beispiel:
| ||||||||||||
| Diese Funktion addiert schrittweise den aktuellen Wert zum kumulierten Wert. Beispiel:
| ||||||||||||
| Wert des bestandenen Indikators, der für den vorherigen Datums- oder Zeitwert berechnet wurde (z.B. Vormonat, Tag, Stunde,....). Beispiel:
| ||||||||||||
| Wert des bestandenen Indikators, der für den vorherigen Datums- oder Zeitwert berechnet wurde (z.B. Vormonat, Tag, Stunde,....). Der Parameter prevLevelAgg stellt die Anzahl der vorherigen Ebenen dar, die aggregiert werden sollen. | ||||||||||||
| Wert des übergebenen Indikators, der für den nächsten Datums- oder Zeitwert berechnet wurde (z.B. Vormonat, Tag, Stunde,....). Beispiel:
| ||||||||||||
| Wert des übergebenen Indikators, der für den nächsten Datums- oder Zeitwert berechnet wurde (z.B. Vormonat, Tag, Stunde,....). Der Parameter prevLevelAgg stellt die Anzahl der vorherigen Ebenen dar, die aggregiert werden sollen. | ||||||||||||
| Die Funktion berechnet die Anzahl der Tage zwischen den angegebenen Daten. | ||||||||||||
int daysBetween(DateTime dateFrom, DateTime dateTo, int[]) | Die Funktion berechnet die Anzahl der Tage zwischen den angegebenen Daten und schließt ausgewählte Tage der Woche aus. Der Wochentag wird mit einer Zahl bezeichnet: 1 ist Montag, 7 ist Sonntag. Das folgende Beispiel zeigt, wie Samstage und Sonntage von der Berechnung ausgeschlossen werden können: daysBetween(date(firstValue('L_DATE_FROM'),date(firstValue('L_DATE_TO'), 6,7) | ||||||||||||
| Die Funktion berechnet die Anzahl der Tage zwischen den angegebenen Daten. | ||||||||||||
| Die Funktion berechnet die Anzahl der Monate zwischen den angegebenen Daten. | ||||||||||||
| Die Funktion berechnet die Anzahl der Monate zwischen den angegebenen Daten. | ||||||||||||
| Die Funktion berechnet die Anzahl der Jahre zwischen den angegebenen Daten. | ||||||||||||
| Die Funktion berechnet die Anzahl der Jahre zwischen den angegebenen Daten. |
Um den gesamten Kontext des ausgewerteten Ausdrucks zu ändern, können Sie folgende Funktionen verwenden:
| Ändert den Kontext des Ausdrucks in den gewünschten vorherigen Datumsbereich. Der Wert des Periodenparameters ist einer von: TAG, WOCHE, MONAT, QUARTAL, JAHR. Beispiel:
| ||||||||||||
| Ändert den Kontext des Ausdrucks auf die gewünschte nächste Datumsperiode. Der Wert des Periodenparameters ist einer von: TAG, WOCHE, MONAT, MONAT, QUARTAL, JAHR |
Das folgende Beispiel arbeitet mit Werten, die für ein Jahr vor dem eigentlichen Tabellen-/Diagrammdatumseintrag geladen werden:
return prev(YEAR) { M_NAME_1 / M_NAME_2 * 100 }
Sie können einfach nur den ersten Buchstaben der Zeiteinheit (bei zeitkontextabhängigen Formeln) anstelle ihres vollständigen Namens (Y,Q,M,W,D) eingeben, z.B. prev(Y){}.
Verschachtelte Ausdrücke
Datums- und Zeitfunktionen können kombiniert werden (falls zutreffend), z.B: Wert von M_INDICATOR am 8. Dezember 2010, 9:04:02 Uhr:
dateAt ('2010-12-08') { timeAt('09:04:02') { M_INDICATOR } }