
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.10.2003, 00:54
|
|||
|---|---|---|---|
|
|||
Select "куска" даты |
|||
|
#18+
Доброе время суток! У меня проблема. 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%' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2003, 01:41
|
|||
|---|---|---|---|
Select "куска" даты |
|||
|
#18+
А ты попробуй сделать сначала SELECT CAST(DATA AS CHAR(9)) FROM TABLE1, тогда и увидишь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2003, 11:47
|
|||
|---|---|---|---|
|
|||
Select "куска" даты |
|||
|
#18+
Опечаточка: SELECT CAST(DATA AS CHAR(10)) FROM TABLE1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2003, 11:57
|
|||
|---|---|---|---|
Select "куска" даты |
|||
|
#18+
Да дата в строку преобразовывается просто в формате буржуйском конченом. Если сделаешь SELECT * FROM BUYINGS WHERE DATE_OF STARTING WITH '2' - тебе все записи 2-го тысячелетия вываляться. Поэтому лучше используй обычные операторы сравнения совместно с EXTRACT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2003, 17:00
|
|||
|---|---|---|---|
|
|||
Select "куска" даты |
|||
|
#18+
Можно импортировать функцию substr из ib_udf.dll и тогда писать: cast(substr(DATE,1,2)as *****) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.10.2003, 14:18
|
|||
|---|---|---|---|
|
|||
Select "куска" даты |
|||
|
#18+
А почему бы просто на клиенте (событие OnChange) не разбить дату на состовляющие и передать в ф-ю три параметра типа int? =) Все ведь просто, зачем со строками возиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.10.2003, 14:23
|
|||
|---|---|---|---|
|
|||
Select "куска" даты |
|||
|
#18+
Для конкретной задачи могу предложить просто решение с типом 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! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&tablet=1&tid=1579790]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 490ms |

| 0 / 0 |
