powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Данные из временного промежутка.
34 сообщений из 34, показаны все 2 страниц
Данные из временного промежутка.
    #39585571
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Срочно нужна помощь. Мне нужно вернуть статистику за последние 7 дней и, что бы возвращались записи созданные с 8:00 до 18:00. CREATED - это дата создания, такого вида 26.10.2017 19:53:17. Условия, приведенные ниже дают пустой результат. Подскажите пожалуйста, в чем ошибка или другие варианты.
Заранее спасибо.

AND created > sysdate - 7
AND created BETWEEN to_date('08:00:00', 'HH24:MI:SS') AND to_date('18:00:00', 'HH24:MI:SS')
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585572
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select  to_date('08:00:00', 'HH24:MI:SS')



и наступит просветление.
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585596
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

Спасибо, все это здорово. Ошибку нашел. Но это не решило проблему.
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585600
chuwees,

ну так показывай - как именно исправил.... а то после первого поста - веры тебе нет....
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585601
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweesaleks222,

Спасибо, все это здорово. Ошибку нашел. Но это не решило проблему.

Да, просветление не наступило.

Попытка №2
1. Комментируем фильтры в where... покеда записи не появятся.
2. Чешем репу: "чего не так в этих фильтрах?"
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585603
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
where created BETWEEN to_date('08:00:00', 'HH24:MI:SS') AND to_date('18:00:00', 'HH24:MI:SS')

условие возвращает только те записи, которые созданы 01.01.2018 с 8:00 до 18:00
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585607
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweeswhere created BETWEEN to_date('08:00:00', 'HH24:MI:SS') AND to_date('18:00:00', 'HH24:MI:SS')

условие возвращает только те записи, которые созданы 01.01.2018 с 8:00 до 18:00

Настойчивее чешем репу...
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585616
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222Настойчивее чешем репу...
Я уже не первый час бьюсь с этим. У меня очень мало опыта в создании запросов. Поэтому и написал сюда.
У меня только один вариант - подставить конкретные даты перед временем в запросе
('17.01.2018 08:00:00', 'DD.MM.YYYY HH24:MI:SS'). но это не подойдет. Нужен универсальный скрипт.
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585617
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweeswhere created BETWEEN to_date('08:00:00', 'HH24:MI:SS') AND to_date('18:00:00', 'HH24:MI:SS')

условие возвращает только те записи, которые созданы 01.01.2018 с 8:00 до 18:00

а что такое to_date?
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585618
chuwees where created BETWEEN to_date('08:00:00', 'HH24:MI:SS') AND to_date('18:00:00', 'HH24:MI:SS')

условие возвращает только те записи, которые созданы 01.01.2018 с 8:00 до 18:00А ты упорный! Пробуй еще. На сто-тыщ-пятсот-первый раз сервер сдастся....
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585620
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tactical Nuclear Penguin,

Преобразование текста в дату
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585623
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweesaleks222Настойчивее чешем репу...
Я уже не первый час бьюсь с этим. У меня очень мало опыта в создании запросов. Поэтому и написал сюда.
У меня только один вариант - подставить конкретные даты перед временем в запросе
('17.01.2018 08:00:00', 'DD.MM.YYYY HH24:MI:SS'). но это не подойдет. Нужен универсальный скрипт.

between сравнивает даты
тебе надо время
Код: sql
1.
to_time(created) BETWEEN to_time('08:00:00', 'HH24:MI:SS') AND to_time('18:00:00', 'HH24:MI:SS') 
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585624
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweesTactical Nuclear Penguin,

Преобразование текста в дату

ты с ораклом не попутал?
а вообще почитай про DATEPART
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585630
Tactical Nuclear Penguin,

Да какая разница, что там у него в качестве СУБД, если в голове каша и нет понимания, что "дата и время" в одном флаконе - это совсем не тоже самое, что просто "время"
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585631
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Tactical ты с ораклом не попутал?
а вообще почитай про DATEPART[/quot]

Походу попутал :( надо в другом месте тему размещать?((
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585636
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - ЭхTactical Nuclear Penguin,

Да какая разница, что там у него в качестве СУБД, если в голове каша и нет понимания, что "дата и время" в одном флаконе - это совсем не тоже самое, что просто "время"
Я смотрю ты тут самый умный? Царь и бог?) Ты родился и уже мог скрипт написать?? Сам когда-то учился и надо с уважением относиться к людям, которые учаться! А так ты смахиваешь на неудачника, который самоутверждается за счет других) И мне тебя жалко искренне
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585639
chuwees,

да тут уж и спрашивай.... чего уж там.... но про extract(hour from <date>) (в оракле) я бы на твоем месте всё же почитал. если, конечно, версия сервера позволит....
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585642
chuweesЯ смотрю ты тут самый умный? Царь и бог?) Ты родился и уже мог скрипт написать?? Сам когда-то учился и надо с уважением относиться к людям, которые учаться! А так ты смахиваешь на неудачника, который самоутверждается за счет других) И мне тебя жалко искреннетак ты "слона не продашь"(с)....
и не нужно проецировать свои комплексы на других...
кстаnи, в оракловую ветку форума не ходи. там Elic. Он тебя заклюет так, что мои слова тебе похвалой твоей любимой мамочки покажутся...
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585646
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Форум меня разочаровал немного. Надо добрее быть и писать по делу)

Вот решение, кому интересно

WHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585650
chuweesЯ смотрю ты тут самый умный? Царь и бог?) Ну, уж поумнее некоторых, неспособный MS SQL Server отличить от Oracle. :)
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585651
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuwees,

нафига нам эти типы данных, если мы всё в чары конвертим
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585652
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

Сосни)
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585654
chuweesВсем спасибо. Форум меня разочаровал немного. Надо добрее быть и писать по делу)

Вот решение, кому интересно

WHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')

не льсти себе.
кому на скульсерверной ветке форума может быть интересно твоё (кстати кривое) решение под оракл?
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585655
chuweesДобрый Э - Эх,

Сосни) ну вот и вылезла твоя сущность наружу.... я же тебе уже говорид - не стоит проецировать собственные комплексы и проблемы на других.... если ты любишь посасывать, то это твое личное дело. не нужно нас погружать в такие интимные подробности.
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585664
chuweesWHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')после таких опусов все скульсерверщики будут думать, что оракл отстой и простейшие вещи в нем делаются сложно и через (видимо, любимую тобой) жопу...
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585676
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweesВсем спасибо. Форум меня разочаровал немного. Надо добрее быть и писать по делу)

Вот решение, кому интересно

WHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')

Бред/

Код: sql
1.
2.
WHERE AND created > dateadd( day, -7, getdate() )
           AND cast( created as time) BETWEEN '08:00:00' AND '18:00:00' 
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585682
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

Ты кроме подколов и всякой херни вообще ничего не написал) Люди хоть советы какие давали.
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585690
aleks222chuweesВсем спасибо. Форум меня разочаровал немного. Надо добрее быть и писать по делу)

Вот решение, кому интересно

WHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')

Бред/

Код: sql
1.
2.
WHERE AND created > dateadd( day, -7, getdate() )
           AND cast( created as time) BETWEEN '08:00:00' AND '18:00:00' 

не хотел тебя трогать, но придется.... не напомнишь, в какой версии оракла есть тип TIME?
или уж если сказал "А", то говори и "Б" - указывай какие события трассировки в сессии нужн овключить, чтобы активировать недокуменированный тип данных TIME...


2 ТС - тя для начала код попробуй. после будешь распинаться в благодарностях....
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585697
chuweesДобрый Э - Эх,

Ты кроме подколов и всякой херни вообще ничего не написал) Люди хоть советы какие давали.кстати, шоры-то с шаров сними.... ответ про extract я тебе ещё на прошлой странице дал.... но если "чукча не читатель", я тут тебе не помощник ;)
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585699
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхaleks222пропущено...


Бред/

Код: sql
1.
2.
WHERE AND created > dateadd( day, -7, getdate() )
           AND cast( created as time) BETWEEN '08:00:00' AND '18:00:00' 

не хотел тебя трогать, но придется.... не напомнишь, в какой версии оракла есть тип TIME?
или уж если сказал "А", то говори и "Б" - указывай какие события трассировки в сессии нужн овключить, чтобы активировать недокуменированный тип данных TIME...


2 ТС - тя для начала код попробуй. после будешь распинаться в благодарностях....

Ты не нервничай, выпей глицинчику...
Сам ведь понимаешь, я и по оракаловскому могу.
Тока не хочу.

Если нету возможности отрезать от даты время.
Есть возможность к времени добавить дату.
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585709
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эхкстати, шоры-то с шаров сними.... ответ про extract я тебе ещё на прошлой странице дал.... но если "чукча не читатель", я тут тебе не помощник ;)
Сразу не увидел. Позже обратил внимание. Ибо кроме грязи не ждал о тебя ничего) Спасибо, почитаю
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39585850
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chuweesWHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')
Такой говнокод на ORACLE и я по первости писал.
А потом понеслась.
Код: plsql
1.
2.
3.
4.
5.
SYSDATE -- 2018-17-01 14:40:00
TRUNC( SYSDATE, 'DD' ) -- 2018-17-01 00:00:00
EXTRACT( DAY FROM SYSDATE ) -- 17
EXTRACT( HOUR FROM CAST( SYSDATE AS TIMESTAMP ) ) -- 14
TRUNC( SYSDATE ) + 7/24 -- 2018-17-01 07:00:00


И решение будет
Код: plsql
1.
2.
3.
WHERE
  CREATED >= TRUNC( SYSDATE ) - 7
  AND EXTRACT( HOUR FROM CAST( SYSDATE AS TIMESTAMP ) ) BETWEEN 8 AND 18


за точность кода не ручаюсь

P.S. Первая мысль "хорошо, что он в нашу ветку больше заходить не будет".
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39592857
chuwees
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руслан ДамировичchuweesWHERE TO_NUMBER(TO_CHAR(CREATED,'hh24')) BETWEEN 8 AND 17
AND CREATED > TO_DATE(TO_CHAR(TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'YYYY'))) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'MM')) || '/'
|| TO_NUMBER(TO_CHAR(CURRENT_DATE - 7,'DD')), 'yyyy/mm/dd')
Такой говнокод на ORACLE и я по первости писал.
А потом понеслась.
Код: plsql
1.
2.
3.
4.
5.
SYSDATE -- 2018-17-01 14:40:00
TRUNC( SYSDATE, 'DD' ) -- 2018-17-01 00:00:00
EXTRACT( DAY FROM SYSDATE ) -- 17
EXTRACT( HOUR FROM CAST( SYSDATE AS TIMESTAMP ) ) -- 14
TRUNC( SYSDATE ) + 7/24 -- 2018-17-01 07:00:00


И решение будет
Код: plsql
1.
2.
3.
WHERE
  CREATED >= TRUNC( SYSDATE ) - 7
  AND EXTRACT( HOUR FROM CAST( SYSDATE AS TIMESTAMP ) ) BETWEEN 8 AND 18


за точность кода не ручаюсь

P.S. Первая мысль "хорошо, что он в нашу ветку больше заходить не будет".

Спасибо за вариант. Только не совсем верно получилось. Возвращались все записи. В EXTRACT заменил SYSDATE на CREATED и скрипт вернул нужные значения
...
Рейтинг: 0 / 0
Данные из временного промежутка.
    #39593052
chuweesСпасибо за вариант. Только не совсем верно получилось. Возвращались все записи. В EXTRACT заменил SYSDATE на CREATED и скрипт вернул нужные значения
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Данные из временного промежутка.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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