powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
25 сообщений из 27, страница 1 из 2
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698226
zhenya-jester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица= ДАТА
в ней данные записаны так: 01.01.2014 16:00
тоесть вместе записана и дата и время через пробел

нужно сделать выборку за три месяца, но не просто все подряд, а все, что попало в интервал времени с 12:00 до 14:00 по времени.

Я так понимаю, что это как-то должен быть селект в селекте, но пока не выходит
мне это представляется так:
СЕЛЕКТ * ИЗ таблицыДАТА (
СЕЛЕКТ интервал дат (
СЕЛЕКТ интервал времени) )

подскажите, если не сложно
спасибо!
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698237
zhenya-jesterне просто все подряд, а все, что попало в интервал времени с 12:00 до 14:00 по времени.
Код: plaintext
select * from t extract(hour from cast( this_strange_string_field||':00' as date ) ) between :a and :b;
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698239
Ованес Сусанянzhenya-jesterне просто все подряд, а все, что попало в интервал времени с 12:00 до 14:00 по времени.
Код: plaintext
select * from t  WHERE  extract(hour from cast( this_strange_string_field||':00' as date ) ) between :a and :b;
PS. Поправел.
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698284
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А тупо сделать CAST to TIME не позволяет что?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698315
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА тупо сделать CAST to TIME не позволяет что?..а чё у него с диалектом там ? (не помню просто, в первом или в третьем - там где-то кастовать в time вроде бы нельзя ?
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698590
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

В первом нельзя. Но не кастовать нельзя, а просто типа TIME нет.
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698596
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ованес Сусанян
Код: plaintext
select * from t  WHERE  extract(hour from cast( this_strange_string_field||':00' as date ) ) between :a and :b;
ему ещё по дате надо, то есть примерно так
Код: sql
1.
2.
select * from t WHERE extract(hour from cast( this_strange_string_field||':00' as time ) ) between :a and :b
and cast( this_strange_string_field as date ) between :c and :d;
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698613
zhenya-jester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Client SQL dialect 1 does not support reference to TIME datatype.
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698618
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterClient SQL dialect 1 does not support reference to TIME datatype.вырезай часы тем же сабстрингом и делай приведение к интеджеру, бетвин отработает всё равно.
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698648
zhenya-jester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from (
select sum, datesss from TABLICA where datesss between '01.01.2014' and '1.04.2014')

тут только по диапазону дат выбирает, а надо бы еще и по диапазону времени с 12:00 до 13:00

мысль:
тут можно не в одном запросе сделать, а к примеру в трех, тоесть за каждый месяц отдельный и только по времени, может так проще будет
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38698668
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterselect * from (
select sum, datesss from TABLICA where datesss between '01.01.2014' and '1.04.2014')

тут только по диапазону дат выбирает, а надо бы еще и по диапазону времени с 12:00 до 13:00

мысль:
тут можно не в одном запросе сделать, а к примеру в трех, тоесть за каждый месяц отдельный и только по времени, может так проще будет

Если очень хочется то можно.

зы. И чего это так тянет на использование select from select
pps/ вот здесь 16316418 полностью приведен запрос который тебе нужен,
тебе осталось только с типами данных разобраться
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699001
zhenya-jester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посоветуйте книгу по этой теме - буду учиться
потому как поверхностно я понимаю, но шаг влево и все....
для меня ДЕЛФИ намного проще, а тут слишком много операторов, которые можно по разному расставить
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699034
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterпосоветуйте книгу по этой теме - буду учиться
Data Definition Guide
Language Reference
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699066
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterпосоветуйте книгу по этой теме - буду учиться

Мартин Грубер "Понимание SQL"
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699453
zhenya-jester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура, вышло )))))))))))

select * from (
select summm, datesssss from TABLICA
where (datessssk>='01.01.2014' and datessss<='30.06.2014')
and (extract (hour from datessssk)>=16 and extract (hour from datessss)<=18)
and tip=8)

теперь выбирает интервал по дате и тут же чтоб попало в интервал по времени ))

ну или можно разбить на три запроса, по каждому месяцу отдельно


П.С.
а можно как-то указать не через ЕКСТРАКТ ЧАСЫ, а точное время... например с 12:30 до 13:10 ?
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699476
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterselect * from (
select summm, datesssss from TABLICA
where (datessssk>='01.01.2014' and datessss<='30.06.2014')
and (extract (hour from datessssk)>=16 and extract (hour from datessss)<=18)
and tip=8)

теперь выбирает интервал по дате и тут же чтоб попало в интервал по времени ))

Зачем селект в в селект обернул???
как-то вот так
Код: sql
1.
2.
3.
4.
 select summm, datesssss from TABLICA
    where datessssk between  date '01.01.2014' and  date '30.06.2014'
       and extract (hour from datessssk) between 16 and 18
       and tip=8


zhenya-jesterну или можно разбить на три запроса, по каждому месяцу отдельно

Это уже от твоей задачи зависит
zhenya-jesterП.С.
а можно как-то указать не через ЕКСТРАКТ ЧАСЫ, а точное время... например с 12:30 до 13:10 ?

вот здесь подсказывали 16314359
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699479
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterа можно как-то указать не через ЕКСТРАКТ ЧАСЫ, а точное время...
например с 12:30 до 13:10 ?
Поменяй клиентский диалект на третий, а потом см.выше про CAST().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699679
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterну или можно разбить на три запроса, по каждому месяцу отдельновсё зависит от задачи, о чём уже сказали.
можно сделать примерно так
Код: sql
1.
2.
3.
4.
5.
select summm, extract (month from datessssk) as m, datessssk from TABLICA
where (datessssk>='01.01.2014' and datessss<='30.06.2014')
and (extract (hour from datessssk)>=16 and extract (hour from datessss)<=18)
and tip=8
order by 2


да и строки с >= <= указывают на интервал, для этого есть отдельное слово between, то есть выглядеть будет примерно так
Код: sql
1.
2.
3.
4.
5.
select summm, extract (month from datessssk) as m, datessssk from TABLICA
where datessssk between '01.01.2014' and '30.06.2014'
and extract (hour from datessssk) between 16 and 18
and tip=8
order by 2

крайние значения включаются в выборку
а вообще книгу тебе сказали, да и на сайте есть не только форум
http://www.sql.ru/articles/articles.aspx?g=SQL&s=0
и даже
http://www.sql.ru/docs/sql/u_sql/
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699706
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый диалект и минуты.
наверное так прокатит
Код: sql
1.
2.
3.
4.
5.
select summm, extract (month from datessssk) as m, datessssk from TABLICA
where datessssk between '01.01.2014' and '30.06.2014'
and (cast(extract (hour from datessssk) as DOUBLE PRECISION) + (60/(cast(extract (minute from datessssk) as DOUBLE PRECISION)) between :tFrom and :tTo
and tip=8
order by 2

tFrom и tTo тоже в десятичную дробь свести
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38699707
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу, наоборот
Код: sql
1.
2.
3.
4.
5.
select summm, extract (month from datessssk) as m, datessssk from TABLICA
where datessssk between '01.01.2014' and '30.06.2014'
and (cast(extract (hour from datessssk) as DOUBLE PRECISION) + ((cast(extract (minute from datessssk) as DOUBLE PRECISION)/60) between :tFrom and :tTo
and tip=8
order by 2
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38701505
zhenya-jester
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ого, нифигасе, даже математически можно в ескюэле работать ? ))
а КАСТ он часы+минуты во что преобразует ? в какой форме видит их ? а,б или а:б или как ?
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38701877
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zhenya-jesterого, нифигасе, даже математически можно в ескюэле работать ? ))а почему нет?
zhenya-jesterа КАСТ он часы+минуты во что преобразует ? в какой форме видит их ? а,б или а:б или как ?cast преобразует типы, в моём примере в тип DOUBLE PRECISION (примерно float, если так понятнее). реально тип DATE - ни что иное как число с плавающей точкой. впрочем преобразования посмотри сам, кого и во что и как можно.
с точки зрения более простой работы с временем и датой тебе совет уже дали, приведи БД в 3 диалект.
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38701909
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Roadster!
You wrote on 21 июля 2014 г. 13:37:57:

Roadster> реально тип DATE - ни что иное как число с плавающей точкой.
реально это не совсем так.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38701911
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийреально это не совсем так.может быть.
но я пару раз использовал это замечательное свойство DATE в богомерзком оракле
...
Рейтинг: 0 / 0
SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
    #38701964
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterя пару раз использовал это замечательное свойство DATE в богомерзком оракле

Вот только там DATE тоже всё что угодно, но не double. Фактически единственное место где
она таки double это Delphi.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / SELECT в интервале ДАТЫ и интервале ВРЕМЕНИ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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