Ich habe einige Probleme beim Konvertieren einer Zeichenfolge (JJJJMMTTTCHIISS) in ein Datum mit TRANSLATE.DB2 - Argument 02 der Funktion TRANSLATE nicht gültig
Wenn ich eine Zeichenkette direkt benutze, dann funktioniert das ganz gut, aber wenn ich ein Feld des gleichen Datentyps verwende, varchar (14), dann wirft es den Fehler aus dem Titel.
Hier ist ein einfaches Beispiel von dem, was ich zu tun versucht:
WITH test_table AS (
SELECT '20160101123059' AS d FROM SYSIBM.SYSDUMMY1
)
SELECT d
, translate('ABCD-EF-GH IJ:KL:MN', d, 'ABCDEFGHIJKLMN')
, translate('ABCD-EF-GH IJ:KL:MN', '20160101123059','ABCDEFGHIJKLMN')
FROM test_table
Kann einer von euch erklären, warum das nicht funktioniert? Vielen Dank.
Das ändert natürlich nicht _ eine Zeichenfolge (jjjjmmddhhiiss) zu einem Datum_umwandeln, sondern stattdessen eine Zeichenkette [von Ziffern] in eine Zeichenkette umformatieren, die wie ein Zeitstempel formatiert ist [der sowohl ein Datum als auch eine Uhrzeit enthält]. Wenn der Effekt ein TIMESTAMP-Datentyp sein soll, sehen Sie sich den Kommentar zu "TIMESTAMP() direkt verwenden" an. Ansonsten: Re der Kommentar darüber, wie das Ziel mit Teilstring erreicht wurde, wurde der Ausdruck nicht gezeigt, obwohl, was auch immer verwendet wurde, gibt es wahrscheinlich einfachere Mittel; z.B. zwei nahezu identische Varianten: 'VARCHAR_FORMAT (d, 'JJJJ-MM-TT HH: MI: SS')' 'TO_CHAR (d, 'JJJJ-MM-TT HH24: MI: SS')' – CRPence