У меня возникли проблемы с преобразованием строки (yyyymmddhhiiss) в дату с использованием TRANSLATE.DB2 - Аргумент 02 функции TRANSLATE недействителен
Если я использую строку напрямую, то она отлично работает, но когда я использую поле с точно таким же типом данных, varchar (14), то оно выдает ошибку из заголовка.
Вот простой пример того, что я пытаюсь сделать:
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
Может один из вас объяснить, почему это не работает? Благодарю.
Это, конечно, не _конвертирование строки (yyyymmddhhiiss) к дате_, а переформатирование строки [цифр] в строку, отформатированную как отметка времени [которая включает в себя как дату, так и время]. Если эффект должен быть типом данных TIMESTAMP, то см. Комментарий re "используя TIMESTAMP() напрямую". В противном случае: Re comment о том, как цель была достигнута с помощью подстроки, выражение не было показано, хотя все, что было использовано, есть, вероятно, более простые средства; например два почти одинаковых варианта: 'VARCHAR_FORMAT (d, 'YYYY-MM-DD HH: MI: SS')' 'TO_CHAR (d, 'YYYY-MM-DD HH24: MI: SS')' – CRPence