haipt232 Ответов: 2

Как Я Могу Скрыть Строку 'Ddmmyyyy' В Datetime 'Dd/Mm/Yyyy' В Db2 I5/Os


Привет,

У меня проблема, когда я пытаюсь конвертировать данные из имени столбца: "дата" (строки: ддммгггг например:09032015) в зависимости от того, какой тип datetime (ДД/ММ/гггг), и я использую IBMDA400 поставщика.

Я использую некоторые команды, чтобы попытаться преобразовать, но они не увенчались успехом.

Моя цель-только выбрать данные из базы данных, но Visual Studio всегда отображает ошибку.

экс:

Cmd1: выберите дату(to_date(my string,'dd/mm/yyyy') из таблицы
-> здесь появляется ошибка: SQ20448: выражение недопустимо с использованием строки формата, указанной для TIMESTAMP_FORMAT.

И я изменил: "TIMESTAMP_FORMAT" вместо "TO_DATE"
cmd2: выберите TIMESTAMP_FORMAT(mystring, 'DD/MM/RRRR HH24:MI')
-> ошибка SQ20448 продолжает возникать.
пожалуйста, помогите мне!!
большое спасибо :D

2 Ответов

Рейтинг:
1

Kornfeld Eliyahu Peter

Поскольку у вас есть дата, хранящаяся в строке в формате DDMMYYYY, сначала вы должны преобразовать ее в реальную дату:

DATE(TO_DATE(date_string, 'DDMMYYYY'))

В результате получается двоичная дата, и теперь ее можно преобразовать в любую строку...
CHAR(DATE(TO_DATE(date_string, 'DDMMYYYY')), USA)

AS400 имеет только предопределенные форматы, поэтому "USA" даст вам MM/DD/YYYY вместо DD/MM/YYYY...Вы можете попробовать 'EUR', который даст DD.MM.YYYY и чем заменить . (точка) к / (косая черта)...
Проверьте другие варианты здесь: http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/db2/rbafzmstch2func.htm[^]


haipt232

Спасибо за ваш ответ :D и я могу успешно конвертировать .
если я попробую "EUR", это даст DD.MM.YYYY, но вы можете поддержать меня, как я могу заменить .(точка) на /(Слэш)
Мой код:
выберите тип char(дата(даты(день || месяц || год ,'ДДММГГГГ')),США) как datetime в таблице.
Потому что у меня есть 3 поля (поле 1:день, поле 2: месяц , поле 3: год).И я сгруппировал их в 1 поле, как команда select выше.
Спасибо

Kornfeld Eliyahu Peter

https://publib.boulder.ibm.com/iseries/v5r1/ic2924/books/c0925083585.htm

Рейтинг:
0

Gabriel Ironman

REPLACE(CHAR(DATE(TO_DATE(a.SCFVAL, 'YYYYMMDD')), EUR),'.','-') AS mydate<pre lang="SQL">