powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Select "куска" даты
7 сообщений из 7, страница 1 из 1
Select "куска" даты
    #32294730
-=VVS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!
У меня проблема.
IB6.0, база в диалекте 3, клиент на Delphi5.
Есть Edit на onChange в котором происходит вызов ХП с входным параметром содержимого Edit'а. На типах char и integer всё работает, а передаю в ХП тип date в строке (Edit1.Text) ничего не получается, даже select не делается.
в ХР следующий текст:

create procedure LookUp1(AData char(9))
return(...)
for select *
from table1
where data like :Adata
...
suspend
...

допустим AData :='01%';

Пробовал даже where cast(data as char(9)) like :Adata, не получается. ;-(

В книге написано, что типы date и character совместимы, т.е. дата преобразуется в строку...

Мне именно нужно делать поиск по начальному значению даты или даже по "куску" '%200%'
...
Рейтинг: 0 / 0
Select "куска" даты
    #32294740
Mipa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты попробуй сделать сначала SELECT CAST(DATA AS CHAR(9)) FROM TABLE1, тогда и увидишь...
...
Рейтинг: 0 / 0
Select "куска" даты
    #32295089
-=VVS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опечаточка: SELECT CAST(DATA AS CHAR(10)) FROM TABLE1
...
Рейтинг: 0 / 0
Select "куска" даты
    #32295110
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да дата в строку преобразовывается просто в формате буржуйском конченом. Если сделаешь SELECT * FROM BUYINGS WHERE DATE_OF STARTING WITH '2' - тебе все записи 2-го тысячелетия вываляться. Поэтому лучше используй обычные операторы сравнения совместно с EXTRACT.
...
Рейтинг: 0 / 0
Select "куска" даты
    #32295686
Катерина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно импортировать функцию substr из ib_udf.dll
и тогда писать:
cast(substr(DATE,1,2)as *****)
...
Рейтинг: 0 / 0
Select "куска" даты
    #32299900
Bormee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему бы просто на клиенте (событие OnChange) не разбить дату на состовляющие и передать в ф-ю три параметра типа int? =) Все ведь просто, зачем со строками возиться.
...
Рейтинг: 0 / 0
Select "куска" даты
    #32299914
Bormee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для конкретной задачи могу предложить просто решение с типом int. В предложении WHERE просто пишете

WHERE (EXTRACT(YEAR FROM MYDATE) = AYEAR OR AYEAR IS NULL)
AND (EXTRACT(DAY FROM MYDATE) = ADAY OR ADAY IS NULL)
AND (EXTRACT(MONTH FROM MYDATE) = AMONTH OR AMONTH IS NULL)
...

Good Luck!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Select "куска" даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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