Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Дата в union - проблема!!! / 8 сообщений из 8, страница 1 из 1
30.09.2003, 17:34
    #32279860
^junior^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
Есть большо юнион, в котором выбираемые поля в первом селекте и во втором одинаковы, но в первом данные берутся из таблицы базы, а во втором - подставляются постоянные значения. И вот для всех типов полей это работает, а для даты - нет. Подскажите, как это правильно делается. Вот на таком примере:

select plat_date, plat_sum from app_plateg
union
select datetime(2000-01-01) as plat_date, plat_sum from app_plateg;
...
Рейтинг: 0 / 0
30.09.2003, 18:22
    #32279951
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
Ты не указал, какой у типа тип данных :-).
Если это действительно Дата (date), то надо использовать что-нибудь, возвращающее date. В твоем случае,
select plat_date, plat_sum from app_plateg
union
select mdy(1,1,2001) as plat_date, plat_sum from app_plateg;

Впрочем, если бы существовала функция datetime, то приведенный тобою пример соотвествовал бы
datetime(2001-01-01) = datetime(1999)

Чтобы получить тип datetime надо использовать:
extend('2001-01-01', year to day)
...
Рейтинг: 0 / 0
01.10.2003, 10:51
    #32280336
^junior^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
Спасибо большое. Заработало.

Однако странно, что функции datetime не существует. Потому что в другом селекте она исправно работает:
Код: plaintext
1.
select plat_date, ... from ...
where plat_date between datetime( 2000 - 01 - 01 ) year to date and datetime( 2003 - 12 - 31 ) year to date;

Может просветит кто?
...
Рейтинг: 0 / 0
01.10.2003, 12:17
    #32280531
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
Datetime - не функция. Приведенный тобою пример иллюстрирует способ задания констант типа Datetime. В union его естественно тоже можно использовать. С одним но, у тебя опять таки опечатка:
datetime(2000-01-01) year to DATE
конечно не DATE, a DAY.
...
Рейтинг: 0 / 0
01.10.2003, 13:11
    #32280626
^junior^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
И ещё раз спасибо!

year to date - конечно опечатка.

И, вдогоночку, ещё вопросик. Если в юнионе в первом селекте стоит, скажем
Код: plaintext
' ' as mem_name
а во втором
Код: plaintext
table.mem_name
и вот этот table.mem_name имеет тип varchar(14,0), корректно ли такое сравнение? Может нужно в первом поставить 14 пробелов? Или задать константу, как-то иначе?
...
Рейтинг: 0 / 0
01.10.2003, 13:46
    #32280706
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
14 пробелов в информиксе одному пробелу и даже нулю символов.

select * from table(set{1}) Where ''=' '
select * from table(set{1}) Where ' '=' '
...
Рейтинг: 0 / 0
01.10.2003, 13:46
    #32280708
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
14 пробелов в информиксе РАВНЫ одному пробелу и даже нулю символов.

select * from table(set{1}) Where ''=' '
select * from table(set{1}) Where ' '=' '
...
Рейтинг: 0 / 0
01.10.2003, 15:08
    #32280867
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в union - проблема!!!
На счет нулю, можно поспорить. Нули они разные бывают :-). Я 1.5 года назад получил вот такие вот грабли:

Как оказалось "пустое" поле varchar бывает нескольких видов:
1. NULL. при контетенации с другими строками приводит к NULL.
2. Пустое - выгружается UNLOAD-ом, как "\ ". при контетенации
игнорируется.
3. Пробел - выгружается UNLOAD-ом, как " ". при контетенации выглядит как пробел.

Создать ситуацию #3, мне "помог" HPL. Никаким другим способом, затолкнуть
"пробел" мне не удалось.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Дата в union - проблема!!! / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]