## Konvertierung von Datums- und Zeitwerten

### Verwendung

Das Modul sdb.dbapi implementiert die Funktionen, die in der Python Database API Specification v2.0 für die Konvertierung von Datumswerten und -Zeitwerten empfohlen werden.

### Funktionsumfang

Konvertierung Python-Werte -> MaxDB-Werte

Funktion | Rückgabewert
Date (year, month, day) | String, der überall dort verwendet werden kann, wo das Datenbanksystem einen Inputwert für einen SQL-Datentyp DATE erwartet
Time (hour, minute, second) | String, der überall dort verwendet werden kann, wo das Datenbanksystem einen Inputwert für einen SQL-Datentyp TIME erwartet
Timestamp (year, month, day, hour, minute, second, micros = 0) | String, der überall dort verwendet werden kann, wo das Datenbanksystem einen Inputwert für einen SQL-Datentyp TIMESTAMP erwartet
DateFromTicks (ticks) | String, der überall dort verwendet werden kann, wo das Datenbanksystem einen Inputwert für einen SQL-Datentyp DATE erwartet
TimeFromTicks (ticks) | String, der überall dort verwendet werden kann, wo das Datenbanksystem einen Inputwert für einen SQL-Datentyp TIME erwartet
TimestampFromTicks (ticks) | String, der überall dort verwendet werden kann, wo das Datenbanksystem einen Inputwert für einen SQL-Datentyp TIMESTAMP erwartet

Konvertierung MaxDB-Werte -> Python-Werte

Funktion | Rückgabewert
dateTuple | (year, month, day)
timeTuple | (hour, minute, second)
timestampTuple | Tupel im selben Format wie der Rückgabewert von time.localtime ()
dateVal | Anzahl Sekunden seit epoch
timeVal | Anzahl Sekunden seit epoch
timestampVal | Anzahl Sekunden seit epoch
DateFormat (formatString) | Datum formatiert gemäß time.strftime
TimeFormat (formatString) | Zeit formatiert gemäß time.strftime
TimestampFormat (formatString) | Zeitstempel formatiert gemäß time.strftime

Weitere Informationen finden Sie in der Dokumentation zu Python, siehe www.python.org.

Registrierung von Konvertierungsfunktionen mit einem Cursor- oder Connection-Objekt

aufrufbares Objekt | Beschreibung
cursor.setTranslation ([ None, sdb.dbapi.dateTuple, sdb.dbapi.DateFormat('%Y-%m-%d')]) | Sie übergeben eine Liste, in der Sie für jede Spalte eine Funktion zur Datenumwandlung angeben. Wenn für eine Spalte kein Datenumwandlung stattfinden soll, dann übergeben Sie an der Position dieser Spalte das None-Objekt.
cursor.setTypeTranslation ({ 'Date': sdb.dbapi.dateTuple, 'Time': sdb.dbapi.timeTuple, 'Fixed':str}) | Sie übergeben ein Dictionary. Als Schlüssel geben Sie die gleichen Typnamen an, wie sie die Methode sdb.sql.SapDB_ResultSet.getDescription ausgibt. Als Werte geben Sie Funktionen zur Datenumwandlung an. Diese Funktionen wendet das System auf alle Spalten eines bestimmten SQL-Datentyps an.
connection.setTypeTranslation ({ Date': sdb.dbapi.dateTuple, 'Time': sdb.dbapi.timeTuple, 'Fixed':str}) | Sie übergeben ein Dictionary, das so aufgebaut ist wie der Parameter für cursor.setTypeTranslation. Für jedes neu erzeugte Cursor-Objekt rufen Sie die Methode setTypeTranslation mit dem Dictionary als Parameter auf.

Weitere Informationen finden Sie unter www.python.org.