Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 12:01   #1
call_me_Frank
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 18
Вопрос Запрос на выборку значений с некоторым интервалом времени.

Добрый день, уважаемые! Прошу вас помочь разобраться с такой задачкой:
есть БД (IB/Firebird), с таблицей, в которой в одном из столбцов записаны значения даты-времени. Значения отличаются на 1 секунду. Как возможно произвести выборку этих значений с некоторым интервалом (от 1 сек, до 23:59:59), который задается пользователем? Возможно ли это сделать средствами лишь SQL запросов?

Работаю с Borland Delphi, FIBPlus, IB/Firebird.
call_me_Frank вне форума Ответить с цитированием
Старый 13.05.2010, 12:10   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

1) возможно. SELECT *
FROM Table
WHERE time BETWEEN 00:00:00 AND 23:59:59;
2) См. Выше
danekne вне форума Ответить с цитированием
Старый 13.05.2010, 12:36   #3
call_me_Frank
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 18
По умолчанию

не совсем доступно объяснил, попробую уточнить:
как мне из этого интервала времени (допустим, одни сутки, на каждую секунду которых приходится одна запись таблицы) выбрать каждую 10 запись? Т.е. с интервалом в 10 сек., или с интервалом в 2 минуты, или в 1 минуту 25 секунд?

danekne, что подразумевает вариант номер 2?
call_me_Frank вне форума Ответить с цитированием
Старый 13.05.2010, 12:54   #4
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

2) означает, что реализовано ср-вами SQL
вариант с диапазоном:
Запускаем счетчик в делфях с диапазоном заданным, потом делаем SELECT на одну запись с Where time = полесчетчик
И в куда то потом это поле суем пока цикл не пройдет
danekne вне форума Ответить с цитированием
Старый 13.05.2010, 14:51   #5
call_me_Frank
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 18
По умолчанию

да, такой вариант реализации, используя цикл, в голове крутился думаю, не слишком долго это будет работать, такая выборка? видел в интернете инструкцию INTERVAL, используемую в запросах SQL, но так и не понял, что именно она реализует...Вы с ней не сталкивались?
call_me_Frank вне форума Ответить с цитированием
Старый 13.05.2010, 14:53   #6
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

сталкивался, но не пользовался)
danekne вне форума Ответить с цитированием
Старый 13.05.2010, 15:00   #7
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

все просто
берете значение с датой-временем и делаете:
1) отрезаете дату
2) время переводите в секунды
3) делите полученное в п.2 на параметр "каждые 1 минута 25 сек", переведенный тоже в секунды - если остаток от деления = ноль, то это наша запись
т.е. в фильтре скл-запроса этот пункт будет выглядеть так
Код:
and (total_seconds / 85) - round(total_seconds / 85) = 0
ну а как реализовать пункты 1 и 2 - почитайте про UDF в ФБ
soleil@mmc вне форума Ответить с цитированием
Старый 13.05.2010, 17:11   #8
call_me_Frank
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 18
По умолчанию

Отлично! Благодарю я верил, что этот вариант существует
call_me_Frank вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Запрос на выборку fobass Общие вопросы .NET 2 04.02.2010 14:26
Запрос на выборку igordeg Microsoft Office Access 3 21.01.2010 21:33
Запрос на выборку Like Agapov_stas Microsoft Office Access 3 02.12.2009 11:09
запрос на выборку МаришаГ Microsoft Office Access 5 21.08.2009 23:46
Запрос на выборку Ruska882009 Microsoft Office Access 2 26.02.2009 20:39