Skip to content
NextLytics
Megamenü_2023_Über-uns

Shaping Business Intelligence

Ob clevere Zusatzprodukte für SAP BI, Entwicklung aussagekräftiger Dashboards oder Implementierung KI-basierter Anwendungen - wir gestalten zusammen mit Ihnen die Zukunft von Business Intelligence. 

Megamenü_2023_Über-uns_1

Über uns

Als Partner mit tiefem Prozess-Know-how, Wissen der neuesten SAP-Technologien sowie hoher sozialer Kompetenz und langjähriger Projekterfahrung gestalten wir die Zukunft von Business Intelligence auch in Ihrem Unternehmen.

Megamenü_2023_Methodik

Unsere Methodik

Die Mischung aus klassischem Wasserfallmodell und agiler Methodik garantiert unseren Projekten eine hohe Effizienz und Zufriedenheit auf beiden Seiten. Erfahren Sie mehr über unsere Vorgehensweise.

Produkte
Megamenü_2023_NextTables

NextTables

Daten in SAP BW out of the Box bearbeiten: Mit NextTables wird das Editieren von Tabellen einfacher, schneller und intuitiver, egal ob Sie SAP BW on HANA, SAP S/4HANA oder SAP BW 4/HANA nutzen.

Megamenü_2023_Connector

NextLytics Connectoren

Die zunehmende Automatisierung von Prozessen erfordert die Konnektivität von IT-Systemen. Die NextLytics Connectoren ermöglichen eine Verbindung Ihres SAP Ökosystems mit diversen open-source Technologien.

IT-Services
Megamenü_2023_Data-Science

Data Science & Engineering

Bereit für die Zukunft? Als starker Partner stehen wir Ihnen bei der Konzeption, Umsetzung und Optimierung Ihrer KI-Anwendung zur Seite.

Megamenü_2023_Planning

SAP Planning

Wir gestalten neue Planungsanwendungen mithilfe von SAP BPC Embedded, IP oder  SAC Planning, die einen Mehrwert für Ihr Unternehmen schaffen.

Megamenü_2023_Dashboarding

Dashboarding

Mit unserer Expertise verhelfen wir Ihnen auf Basis von Tableau, Power BI, SAP Analytics Cloud oder SAP Lumira zu aussagekräftigen Dashboards. 

Megamenü_2023_Data-Warehouse-1

SAP Data Warehouse

Planen Sie eine Migration auf SAP HANA? Wir zeigen Ihnen, welche Herausforderungen zu beachten sind und welche Vorteile eine Migration bringt.

Business Analytics
Megamenü_2023_Procurement

Procurement Analytics

Transparente und valide Zahlen sind vor allem in Unternehmen mit dezentraler Struktur wichtig. SAP Procurement Analytics ermöglicht die Auswertung von SAP ERP-Daten in SAP BI.

Megamenü_2023_Reporting

SAP HR Reporting & Analytics

Mit unserem Standardmodell für Reporting von SAP HCM mit SAP BW beschleunigen Sie administrative Tätigkeiten und stellen Daten aus verschiedenen Systemen zentral und valide zur Verfügung.

Megamenü_2023_Dataquality

Data Quality Management

In Zeiten von Big Data und IoT kommt der Vorhaltung einer hohen Datenqualität eine enorm wichtige Bedeutung zu. Mit unserer Lösung für Datenqualitätsmanagement (DQM) behalten Sie stets den Überblick.

Karriere
Megamenü_2023_Karriere-2b

Arbeiten bei NextLytics

Wenn Du mit Freude zur Arbeit gehen möchtest und dabei Deine berufliche und persönliche Weiterentwicklung nicht zu kurz kommen soll, dann bist Du bei uns genau richtig! 

Megamenü_2023_Karriere-1

Berufserfahrene

Zeit für etwas Neues? Gehe Deinen nächsten beruflichen Schritt und gestalte Innovation und Wachstum in einem spannenden Umfeld zusammen mit uns!

Megamenü_2023_Karriere-5

Berufseinsteigende

Schluss mit grauer Theorie - Zeit, die farbenfrohe Praxis kennenzulernen! Gestalte bei uns Deinen Einstieg ins Berufsleben mit lehrreichen Projekten und Freude an der Arbeit.

Megamenü_2023_Karriere-4-1

Studierende

Du möchtest nicht bloß die Theorie studieren, sondern Dich gleichzeitig auch praktisch von ihr überzeugen? Teste mit uns Theorie und Praxis und erlebe wo sich Unterschiede zeigen.

Megamenü_2023_Karriere-3

Offene Stellen

Hier findest Du alle offenen Stellenangebote. Schau Dich um und bewirb Dich - wir freuen uns! Falls keine passende Stelle dabei ist, sende uns gerne Deine Initiativbewerbung zu.

Blog
NextLytics Newsletter Teaser
Hier für unseren monatlichen Newsletter anmelden!
Newsletter abonnieren
 

SAP HANA TO DATE - Datumsfunktionen in HANA SQLScript erklärt

In diesem Beitrag lernen Sie einige hilfreiche HANA SQLScript Datumsfunktionen kennen, die Sie in Ihren Transformationsroutinen verwenden können. Diese Funktionen erleichtern Ihre Arbeit enorm, da sie vordefinierte Logiken enthalten, die Sie nicht manuell programmieren müssen. Hier erkläre ich anhand von Beispielen, wie Sie die häufig auftretenden Anforderungen lösen können.

Mit TO_DATE Datum in SAP HANA DATE Format konvertieren

Der Datentyp DATE besteht aus Jahres-, Monats- und Tagesinformationen, um einen Datumswert darzustellen. Das Standardformat von diesem Datentyp ist YYYY-MM-DD. YYYY steht für das Jahr, MM für den Monat und DD für den Tag. Der Bereich liegt zwischen 0001-01-01 und 9999-12-31.

Mit der SQLScript Funktion TO_DATE können Sie eine Zeichenkette, die ein Datum repräsentiert, in den Datentyp DATE umwandeln. 

Die Syntax der Funktion lautet:

TO_DATE ([Zeichenkette], [Format])

Zum Beispiel:

SELECT TO_DATE('2020-09-01', 'YYYY-MM-DD') "DATE Format" FROM DUMMY;

Beachten Sie bitte, dass Sie bei Transformationsroutinen den ABAP Datentyp DATS im Format YYYYMMDD benötigen. Wenn Sie daher ein ADSO als Ziel der Transformation haben, müssen Sie stattdessen die SAP HANA Funktion TO_DATS verwenden.

Datum in ABAP Format mit SAP HANA Funktion TO_DATS konvertieren

Im Gegensatz zu TO_DATE Funktion, die eine Zeichenkette in das DATE Format YYYY-MM-DD umwandelt, wandelt die TO_DATS Funktion eine Zeichenkette in das DATS Format YYYYMMDD um. Dieses Format wird benötigt, um in BW Objekte wie ADSOs verbuchen zu können.

Die Syntax ist denkbar einfach:

TO_DATS ([Zeichenkette])

Zum Beispiel:

SELECT TO_DATS('2020-09-01') "DATS Format" FROM DUMMY;

Sie können diese Funktion in Verbindung mit anderen SAP HANA Funktionen, wie zum Beispiel ADD_DAYS kombinieren:

OUTTAB = SELECT
TO_DATS(ADD_DAYS(DATE0, 25)) AS DATE0,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

Tage mit SAP HANA Funktion ADD_DAYS hinzufügen

Eine sehr häufige Anforderung besteht darin, Tage zu einem Datum hinzuzufügen. Die Funktion ADD_DAYS erleichtert Ihnen diese Arbeit. Diese HANA Funktion addiert die angegebene Anzahl der Tage zum angegebenen Datum. Dabei werden auch automatisch die Monate und Jahre hochgezählt.

Die Syntax der Funktion lautet:

ADD_DAYS ([Datum], [Anzahl der Tage])

Wobei das Datum das zu inkrementierende Datum angibt und Anzahl der Tage die Anzahl der Tage angibt, um die das Datum erhöht wird.

Im folgenden Beispiel fügen wir im Rahmen einer Transformationsroutine 25 Tage zum jeweiligen Datum hinzu:

OUTTAB = SELECT
TO_DATS(ADD_DAYS(DATE0, 25)) AS DATE0,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script Funktion to_dats und add_days

Monate mit der ADD_MONTHS Funktion hinzufügen

Neben den Tagen können Sie auch Monate hinzuaddieren. Nutzen Sie dazu die SAP HANA Funktion ADD_MONTHS. Diese addiert die angegebene Anzahl an Monaten zum angegebenen Datum hinzu.

Die Syntax der Funktion lautet:

ADD_MONTHS ([Datum], [Anzahl der Monate])

Wobei das Datum das zu inkrementierende Datum angibt und Anzahl der Monate die Anzahl der Monate angibt, um die das Datum erhöht wird.

Im folgenden Beispiel addieren wir ein Monat zum Datum hinzu:

OUTTAB = SELECT
TO_DATS(ADD_MONTHS(DATE0, 1)) AS DATE0,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Scipt Funktion add_months

Dies funktioniert auch über Jahre hinweg, wie das nächste Beispiel zeigt:

OUTTAB = SELECT
TO_DATS(ADD_MONTHS(DATE0, 12)) AS DATE0,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script Funktion add_months - 12 Monate hinzufügen

Die SAP HANA Funktion ADD_YEARS funktioniert analog. Diese fügt zum angegebenen Datum Jahre hinzu.

Aktuelles Datum in SAP HANA über CURRENT_DATE und CURRENT_UTCDATE hinzufügen

Manchmal benötigen Sie im Rahmen einer Transformationsroutine das aktuelle Datum. Zum Beispiel um einen Stichtag für die Währungsumrechnung zu bestimmen.

Um das aktuelle Datum zu ermitteln, können Sie die Funktion CURRENT_DATE nutzen. Diese gibt das aktuelle lokale Systemdatum zurück.

Anbei finden Sie ein Beispiel:

OUTTAB = SELECT
TO_DATS(CURRENT_DATE) AS DATE0,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

Wenn Sie im internationalen Umfeld arbeiten, sollten Sie statt des lokalen Datums das UTC Datum nutzen. Die Verwendung von Ortszeiten und die Konvertierung zwischen lokalen Zeitzonen würde eine zusätzliche Handhabung im Code erfordern.

Nutzen Sie dazu die SAP HANA Funktion CURRENT_UTCDATE:

OUTTAB = SELECT
TO_DATS(CURRENT_UTCDATE) AS DATE0,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script Funktion current_date

Monate und Jahre über SAP HANA EXTRACT Funktion herausfinden

Eine weitere häufige Anforderung ist die Extraktion von Monaten und Jahren aus einem Datum. Mit der EXTRACT Funktion können Sie diese Anforderung ganz einfach umsetzen. Dabei müssen Sie die einzelnen Informationen nicht mühselig über SUBSTRING herausfinden. Die Funktion findet den Wert automatisch heraus.

Die Syntax der Funktion lautet:

EXTRACT ({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} FROM [Datum])

So können Sie zum Beispiel das Kalenderjahr 0CALYEAR und den Kalendermonat 0CALMONTH2 aus dem Datum 0DATE über die Parameter YEAR und MONTH herauslesen:

OUTTAB = SELECT
DATE0,
EXTRACT(MONTH FROM DATE0) AS CALMONTH2,
EXTRACT(YEAR FROM DATE0) AS CALYEAR,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script extract Funktion

Zum selben Zweck können Sie die SAP HANA Funktionen MONTH und YEAR verwenden. Die MONTH Funktion gibt die Nummer des Monats ab dem angegebenen Datum zurück. Die Funktion MONTH gibt die Jahreszahl eines angegebenen Datums zurück:


OUTTAB = SELECT
DATE0,
MONTH (DATE0) AS CALMONTH2,
YEAR (DATE0) AS CALYEAR,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL-Script Funktionen month und year


Steigern Sie die Leistung Ihres BW mit SQLScript

SAP SQLScript Whitepaper


Anzahl der Tage zwischen zwei Daten mit SAP HANA Funktionen DAYS_BETWEEN und WORKDAYS_BETWEEN berechnen

Häufig muss auch die Anzahl der Tage bzw. Werktage berechnet werden, um zum Beispiel die Liefertreue eines Lieferanten zu bestimmen. Dazu können Sie die Funktionen DAYS_BETWEEN und WORKDAYS_BETWEEN nutzen. Die Funktion DAYS_BETWEEN gibt die Anzahl der Tage zwischen zwei Datumswerten zurück.

Die Syntax lautet:

DAYS_BETWEEN ([Startdatum], [Enddatum])

Zum Beispiel:

OUTTAB = SELECT
DATE0, CALDAY, CURRENCY, RECORDMODE, AMOUNT,
DAYS_BETWEEN(DATE0, CALDAY) AS "/BIC/ZDRDBTWN",
RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script Funktion days_between

Allerdings ist es sinnvoller, bei der Berechnung der Liefertreue mit den Arbeitstagen zu rechnen. In diesem Fall kommt die Funktion WORKDAYS_BETWEEN zum Einsatz. Diese ermöglicht es, den Fabrikkalender zur Berechnung von Kennzahlen zu nutzen. In BEx Queries war dies bisher nur eingeschränkt möglich.

Die Syntax dieser Funktion lautet:

WORKDAYS_BETWEEN ([Fabrikkalender], [Startdatum], [Enddatum], [Quellschema])

Der Parameter Fabrikkalender gibt die ID eines Fabrikkalenders in der Fabrikkalender-Tabelle TFACS an. Die Fabrikkalender-Tabelle TFACS muss in der SAP-Datenbank HANA vorhanden sein, um die Funktion nutzen zu können. In SAP BW-, SAP CRM- und SAP ERP-Systemen, die auf einer SAP HANA-Datenbank laufen, befindet sich die Tabelle TFACS im ABAP-Schema SAP<SID>. Für andere SAP-HANA-Datenbanken kann die Tabelle TFACS aus einem SAP-Business-Suite-System repliziert werden.

Werkkalender Auswahl

Das Ergebnis wird als eine INTEGER Zahl zurückgegeben.

Wenn das [Startdatum] kleiner oder gleich dem [Enddatum] ist, dann wird die Anzahl der Arbeitstage in der Periode, die mit dem [Startdatum] beginnt und mit dem [Enddatum] endet, zurückgegeben. Die zurückgegebene Anzahl von Tagen schließt den Tag des [Startdatum] ein, schließt aber den Tag des [Enddatum] aus.

Wenn [Startdatum] nach [Enddatum] liegt, dann wird eine negative Anzahl von Arbeitstagen in dem Zeitraum zurückgegeben, der mit [Enddatum] beginnt und mit [Startdatum] endet. Die zurückgegebene Anzahl von Tagen schließt den Tag des [Enddatums] ein, schließt aber den Tag des [Startdatums] aus.

Nachfolgend finden Sie ein Beispiel:

OUTTAB = SELECT
DATE0, CALDAY, CURRENCY, RECORDMODE, AMOUNT,
WORKDAYS_BETWEEN('10', DATE0, CALDAY) AS "/BIC/ZDRDBTWN",
RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script Funktion workdays_between

Datensätze mit einem Zeitstempel versehen - SAP HANA Funktionen CURRENT_TIMESTAMP und CURRENT_UTCTIMESTAMP

Manchmal ist es nötig, Datensätze mit einem Zeitstempel zu versehen. Dazu können Sie die Funktion TIMESTAMP verwenden. Diese gibt den aktuellen Zeitstempel des lokalen Systems zurück.

Allerdings lautet der HANA-interne Format für den Zeitstempel YYYY-MM-DD HH24:MI:SS.FF7. FF.

HANA-interne Format für den Zeitstempel

Der Format des BW Zeitstempels 0TCTTIMSTMP lautet dagegen YYYYMMDDHHMMSS.

Datentyp des Zeitstempels

Daher müssen Sie den Typ mit der Funktion TO_NVARCHAR umwandeln:

TO_NVARCHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHHMMSS')

Anbei finden Sie ein Beispiel für die Transformationsroutine:

PROCEDURE FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY.
OUTTAB = SELECT
DATE0,
TO_NVARCHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHHMMSS') AS TCTTIMSTMP,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

Mit TO_NVARCHAR Konvertierter Zeitstempel

 

Wenn Sie im internationalen Umfeld arbeiten, sollten Sie UTC-Zeiten anstelle von lokalen Zeitstempeln verwenden. Die Verwendung von Ortszeiten und die Konvertierung zwischen lokalen Zeitzonen kann eine zusätzliche Behandlung im Anwendungscode notwendig machen.

Verwenden Sie in diesem Fall die Funktion CURRENT_UTCTIMESTAMP. Diese selektiert den aktuellen UTC Zeitstempel. Zum Beispiel:

OUTTAB   = SELECT
DATE0,
TO_NVARCHAR(CURRENT_UTCTIMESTAMP, 'YYYYMMDDHHMMSS')  AS TCTTIMSTMP,
CURRENCY, RECORDMODE, AMOUNT, RECORD, SQL__PROCEDURE__SOURCE__RECORD
FROM :INTAB;

SQL Script Funktion UTC_TIMESTAMP

SAP HANA TO DATE - Unser Fazit

Wie Sie sehen, kann der Umstieg von ABAP auf SQLScript dank vordefinierten Funktionen erleichtert werden. Diese decken die häufigsten Anforderungen ab.

Möchten Sie mehr über Einsatzgebiete von SAP HANA SQLScript erfahren? Laden Sie sich unser aktuelles Whitepaper zu diesem Thema herunter! Sollten Sie Unterstützung bei der Definition der für Sie passenden HANA Strategie benötigen, zögern Sie bitte nicht, uns zu kontaktieren. 

Erfahren Sie mehr über  SAP HANA SQLScript

, ,

avatar

Chris Fidanidis

Chris ist seit 2007 im SAP BW-Umfeld tätig. In diesen Jahren hat er mehrere Planungsprojekte umgesetzt und dabei die diversesten SAP-Tools genutzt, wie z.B. SAP BSP, SAP BW-IP, SAP BPC, SAP BW Embedded BPC. Erfahrungen hat er vor allem als Entwickler, Architekt, Projekt- bzw. Teamleiter sammeln können. Privat spielt er gerne Basketball und grillt wann immer es geht.

Sie haben eine Frage zum Blog?
Fragen Sie Chris Fidanidis

Gender Hinweis Aufgrund der besseren Lesbarkeit wird im Text das generische Maskulinum verwendet. Gemeint sind jedoch immer alle Menschen.

Blog - NextLytics AG 

Welcome to our blog. In this section we regularly report on news and background information on topics such as SAP Business Intelligence (BI), SAP Dashboarding with Lumira Designer or SAP Analytics Cloud, Machine Learning with SAP BW, Data Science and Planning with SAP Business Planning and Consolidation (BPC), SAP Integrated Planning (IP) and SAC Planning and much more.

Informieren Sie mich über Neuigkeiten

Verwandte Beiträge

Letzte Beiträge