Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преоброзование даты/времени из одного формата в другой ? [D6, IB6.x]


slaga ©   (2004-11-05 13:35:00) 

У меня такой вопрос:
Как преоброзовать в запросе дату/время из такого формата:
20041104172335;
В такой:
11.04.2004 17:23:35.

Меня интересует возможность похожая на Oraclовскую:
TO_CHAR(20041104172335, 'YYYYMMDDHH24MISS').


Johnmen   (2004-11-05 15:07:00) [1]

Значит ты нагло наврал про используемый сервер.
:)


slaga   (2004-11-05 14:59:00) [2]

Ура, спасибо огромное Соловьев, чуть чуть модефицировал и все получилось.

select
cast(
    substring(SALESTIME from 7 for 2 )||'.'
    ||substring(SALESTIME from 5 for 2 )||'.'
    ||substring(SALESTIME from 1 for 4 )
    as date)
from sales

вот так это у меня выглядело


Соловьев   (2004-11-05 14:59:00) [3]

проверь сначала правильно ли формирует компоненты даты, а потом попробуй разные форматы: dd.mm.yyyy, yyyy-mm-dd, dd-mm-yyyy и т.д. Думай


Johnmen   (2004-11-05 14:57:00) [4]

>slaga ©   (05.11.04 14:47) [12]
>3. Если бы у тебя был FB вместо IB, то можно было бы и на
>уровне сервера.
>
>читай внимательно

Где здесь хоть слово про UDF ???

Про SUBSTRING забудь.


slaga   (2004-11-05 14:56:00) [5]

:)) разобрался, но оно все равно ругается на то что это conversion error from string ^(


Соловьев   (2004-11-05 14:51:00) [6]


> ругается :(

а подумать? там есть ошибки. ну и что?  ты ж прграммер.


slaga   (2004-11-05 14:49:00) [7]

>>to Соловьев

fmSQLEditor_1.Query:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, char 25.
).

ругается :(


slaga   (2004-11-05 14:47:00) [8]

3. Если бы у тебя был FB вместо IB, то можно было бы и на уровне сервера.

--------------------------------------------------------------------------------
читай внимательно


Соловьев   (2004-11-05 14:45:00) [9]

select
cast(
cast(substring(field1) from 1 for 4 )||'-'
cast(substring(field1) from 5 for 2 )||'-'
cast(substring(field1) from 7 for 2 ) as date)
from table

Дале сам можешь придумать как и время прилепить


Johnmen   (2004-11-05 14:40:00) [10]

>но ты же говоришь что UDF можно юзать только с FB, а с IB нет

Я этого не говорил, т.к. говорить этого не мог в принципе.


Mike Kouzmine   (2004-11-05 14:37:00) [11]

Можно еще сделать вычисляемое поле, а то, с абракадаброй, скрыть. Но это только на клиенте.


slaga   (2004-11-05 14:37:00) [12]

но ты же говоришь что UDF можно юзать только с FB, а с IB нет


Johnmen   (2004-11-05 14:34:00) [13]

Тогда п.1


slaga   (2004-11-05 14:29:00) [14]

:))
Весело, только мне это надо именно под IB и именно в selecte/


Johnmen   (2004-11-05 14:17:00) [15]

if not п.3 then
 if not (I know, what is UDF) then п.2
 else п.1
else п.3;


slaga   (2004-11-05 14:11:00) [16]

А так как мне поступит ?


Johnmen   (2004-11-05 14:07:00) [17]

1. UDF - User Define Function
2. Если "работать" это в приложении, то и делай к нужному формату в приложении.
3. Если бы у тебя был FB вместо IB, то можно было бы и на уровне сервера.


slaga   (2004-11-05 14:02:00) [18]

НУ во-первых что такое UDF и как его использовать.
А во-вторых табличка не моя, а мне с ней работать :(
Формат поля с датой/временем VARCAHR.


Johnmen   (2004-11-05 13:45:00) [19]

Что-то тебе и на sql.ru не отвечают...:)
Видимо потому, что ответ стандартный - UDF.
И ещё можно потрепаться на тему "а зачем у тебя такой формат?","какого типа 20041104172335" и т.п.
:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо