Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Внизвыбор значения из поля типа TimeStamp с помощью Case Найти похожие ветки
← →
VadimKV (2004-10-21 16:08) [0]Среда FB1.5 (Dialect 3), IBExpert.
Подскажите кто знает. Почему если выбирать значение из поля типа TimeStamp обычным способом, то значение отабражается так же как в Grid. А если выбирать тоже самое поле через Case, то формат отабражения даты меняется.
В меню Environment Options -> Grid -> Displai Format (IBExpert) установлено dd.mm.yyyy hh:mm.
Пример: обычно - 08.09.2004 00:00,
Dialect3 через Case - 2004-09-08 00:00:00.0000
Dialect1 через Case - 8 aug 2004 (в данный момент не интересует)
select r.createddate
,case
when sys.rdb$field_name = "CREATEDDATE"
then r.createddate
... ... ...
и т.д.
← →
Sandman25 © (2004-10-21 16:25) [1]cast(case (...) as НУЖНЫЙ ТИП)
← →
Johnmen © (2004-10-21 16:25) [2]Думается, потому, что предопределить тип значения, получаемого применением case проблематично. А когда он уже определен, то к нему уже позно применять маски, и он выводится "как есть" .
Для полей этой проблемы нет.
← →
VadimKV (2004-10-21 16:45) [3]Sandman25 Весь Case, взять в cast не могу, потомучно много
... ... ...
when sys.rdb$field_name = "CREATEDDATE" then r.createddate
when sys.rdb$field_name = "NAMEREF" then r.nameref
... ... ...
Johnmen - "А когда он уже определен...".
Когда и как его можно определить нужным образом, что бы Case выводил этот тип нормально?
← →
Johnmen © (2004-10-21 17:27) [4]
> VadimKV (21.10.04 16:45) [3]
1.
>Весь Case, взять в cast не могу, потомучно много
Ну что ? Как "множество" влияет на "невозможность" ?
2.
>r.createddate
>r.nameref
Какого типа поля ?
3.
>Когда и как его можно определить ...
Так это фича программы под назв. IBExpert. См. её исх.коды :)))
← →
VadimKV (2004-10-22 09:08) [5]Весь Case, взять в cast не могу, потомучно много when и поля разных типов.
r.createddate timestamp
r.nameref varchar, integer и т.д.
А точно, что нужно зделать с этой фичей неизвестно?
Честно, в исходных кодах, Я незнаю что искать и что там править.
Если можите подсказать, то большое спасибо.
Кто муже, почему в исходных кодах IBExpert, ведь эту настройку должен хранить сервер FB1.5 наверное.
← →
Johnmen © (2004-10-22 09:11) [6]>поля разных типов.
Вот ты и сам ВСЁ сказал !
Про исх. коды была шутка...:)
← →
Johnmen © (2004-10-22 09:13) [7]Хотя можешь попробовать
THEN CAST(... AS TIMESTAMP)
THEN CAST(... AS TIMESTAMP)
← →
VadimKV (2004-10-22 09:17) [8]THEN CAST(... AS TIMESTAMP)
Так я уже пробавал пробавал, не помагает.
Есть конечно крайний вариант через Extract(...).
Но все равно не понятно почему так происходит, и можно ли вообще это исправить.
← →
Johnmen © (2004-10-22 09:20) [9]Ну что тут непонятного ? Всё очевидно !
И вообще, зачем это тебе ?
← →
VadimKV (2004-10-22 09:31) [10]Нужно это для того, что бы данные хранились в одинаковом виде.
Пример поля типя TimeStamp заполняются в виде
"1.10.2004", делая запрос select fldTimeStamp ... будет возвращено значение "1.10.2004".
Если Я делаю какие либо обработки данных запросом вида
insert into ...
select case
when sys.rdb$field_name = "CREATEDDATE" then r.createddate
when sys.rdb$field_name = "NAMEREF" then r.nameref
... ... ...
, то в БД данные будут храниться ввиде "2004-09-08", это же значение далее будет возвращать Select ...
← →
Johnmen © (2004-10-22 09:35) [11]Похоже у тебя серьезные проблемы с проектированием.
Рекомендую в этом направлении решать проблемы...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c