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

select plat_date, plat_sum from app_plateg
union
select datetime(2000-01-01) as plat_date, plat_sum from app_plateg;
...
Рейтинг: 0 / 0
Дата в union - проблема!!!
    #32279951
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты не указал, какой у типа тип данных :-).
Если это действительно Дата (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
Дата в union - проблема!!!
    #32280336
^junior^
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Заработало.

Однако странно, что функции 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
Дата в union - проблема!!!
    #32280531
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Datetime - не функция. Приведенный тобою пример иллюстрирует способ задания констант типа Datetime. В union его естественно тоже можно использовать. С одним но, у тебя опять таки опечатка:
datetime(2000-01-01) year to DATE
конечно не DATE, a DAY.
...
Рейтинг: 0 / 0
Дата в union - проблема!!!
    #32280626
^junior^
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё раз спасибо!

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

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

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

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

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

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


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