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

оно?
...
Рейтинг: 0 / 0
date
    #32330905
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так тоже можно:
Код: 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
date
    #32330982
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняйте за занудство, но зачем COMMIT ???

А Вы, Gosha, уверены, что у вас запрос вернет не более одной записи??? Если более одной, что скорее всего потребуется курсор (столь нелюбимый Филиппом) или DataStore (им же предпочитаемый).
...
Рейтинг: 0 / 0
date
    #32331067
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
date
    #32331119
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я даже догадываюсь, о каких базах идет речь...
...
Рейтинг: 0 / 0
date
    #32331158
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MS SQL Server 7.5/7/2000 ...
---
С уважением, IKAR
программист-разработчик
PowerBuilder
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
date
    #32331189
Gosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2urvas, база данных Sybase, а запрос, действительно должен возвращать множество записей
...
Рейтинг: 0 / 0
date
    #32331220
between всегда быстрее!
...
Рейтинг: 0 / 0
date
    #32331342
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если множество записей, то либо курсор, либо DataStore, основанные на запросах, которые уже упоминались (только без into !!!!).

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

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

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

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


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