Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / date / 12 сообщений из 12, страница 1 из 1
20.11.2003, 19:51
    #32330741
Gosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
народ, по каким критериям PB сравнивает дату, другими словами: как сделать выборку из таблицы за период времени. который передается через переменные? заранее спасибо, знаю, что поможите и научите :)
...
Рейтинг: 0 / 0
20.11.2003, 20:29
    #32330765
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
Код: plaintext
select * from <table> where <date_field> between :var1 and :var2

оно?
...
Рейтинг: 0 / 0
21.11.2003, 08:03
    #32330905
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
И так тоже можно:
Код: plaintext
1.
2.
date data_1, data_2
select field_1 into :var_1 from <table_name> where (date_field <= :data_1 and date_field >= data_2);
commit;

НО: Вы не указали тип БД, с которой Вы работаете, а это весьма существенно. Синтаксис разных БД может различатся даже по отношению к полям типа char не говоря уж о типах Date и DateTime
---
С уважением, IKAR
программист-разработчик
PowerBuilder
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
21.11.2003, 09:35
    #32330982
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
Извиняйте за занудство, но зачем COMMIT ???

А Вы, Gosha, уверены, что у вас запрос вернет не более одной записи??? Если более одной, что скорее всего потребуется курсор (столь нелюбимый Филиппом) или DataStore (им же предпочитаемый).
...
Рейтинг: 0 / 0
21.11.2003, 10:26
    #32331067
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
2 urvas: ну, во первых по привычке, а во вторых на всякий пожарный - ибо некоторые БД очень любят вешать блокировочки даже при селектах.
Как правило это происходит вследствие кривых настроек выполненых кривыми руками недоученных ДБА :(... ИМХО
Вот например было такое в моей практике: делаю
Код: plaintext
1.
select a, b from test_table;
select @@trancount into :ll_tran;

получаю ll_tran = 1 (!)
после commit; делаю опять
Код: plaintext
select @@trancount into :ll_tran;

и вот тогда получаю ll_tran = 0...
---
С уважением, IKAR
программист-разработчик
PowerBuilder
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
21.11.2003, 11:02
    #32331119
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
Я даже догадываюсь, о каких базах идет речь...
...
Рейтинг: 0 / 0
21.11.2003, 11:24
    #32331158
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
MS SQL Server 7.5/7/2000 ...
---
С уважением, IKAR
программист-разработчик
PowerBuilder
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
21.11.2003, 11:49
    #32331189
Gosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
2urvas, база данных Sybase, а запрос, действительно должен возвращать множество записей
...
Рейтинг: 0 / 0
21.11.2003, 12:05
    #32331220
date
between всегда быстрее!
...
Рейтинг: 0 / 0
21.11.2003, 13:01
    #32331342
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
Если множество записей, то либо курсор, либо DataStore, основанные на запросах, которые уже упоминались (только без into !!!!).

Например (для курсора):
DECLARE <cursor_name> CURSOR FOR
select * from <table> where <date_field> between :var1 and :var2 ;
Ну а затем
OPEN...
FETCH...
CLOSE...

Подробности про курсоры и DataStore смотрите в руководстве...
...
Рейтинг: 0 / 0
21.11.2003, 13:40
    #32331414
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
date
to:Антон Приходько
> between всегда быстрее!
А на каком основании вы это утверждаете?

Или это относится именно к серверу Sybase, хотя тоже очень странно.
...
Рейтинг: 0 / 0
24.11.2003, 07:48
    #32332541
date
> between всегда быстрее!

Это неправда. Чтобы в этом убедиться, достаточно посмотреть план запроса.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / date / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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