Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
Всем привет. Срочно нужна помощь. Мне нужно вернуть статистику за последние 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')
17 янв 18, 10:43    [21113009]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
aleks222
Guest
select  to_date('08:00:00', 'HH24:MI:SS')


и наступит просветление.
17 янв 18, 10:45    [21113013]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
aleks222,

Спасибо, все это здорово. Ошибку нашел. Но это не решило проблему.
17 янв 18, 11:06    [21113095]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
chuwees,

ну так показывай - как именно исправил.... а то после первого поста - веры тебе нет....
17 янв 18, 11:09    [21113102]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
aleks222
Guest
chuwees
aleks222,

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


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

Попытка №2
1. Комментируем фильтры в where... покеда записи не появятся.
2. Чешем репу: "чего не так в этих фильтрах?"
17 янв 18, 11:10    [21113107]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
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
17 янв 18, 11:14    [21113125]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
aleks222
Guest
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


Настойчивее чешем репу...
17 янв 18, 11:20    [21113147]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
aleks222
Настойчивее чешем репу...

Я уже не первый час бьюсь с этим. У меня очень мало опыта в создании запросов. Поэтому и написал сюда.
У меня только один вариант - подставить конкретные даты перед временем в запросе
('17.01.2018 08:00:00', 'DD.MM.YYYY HH24:MI:SS'). но это не подойдет. Нужен универсальный скрипт.
17 янв 18, 11:27    [21113182]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2727
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


а что такое to_date?
17 янв 18, 11:28    [21113187]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
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
А ты упорный! Пробуй еще. На сто-тыщ-пятсот-первый раз сервер сдастся....
17 янв 18, 11:28    [21113189]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
Tactical Nuclear Penguin,

Преобразование текста в дату
17 янв 18, 11:29    [21113196]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
aleks222
Guest
chuwees
aleks222
Настойчивее чешем репу...

Я уже не первый час бьюсь с этим. У меня очень мало опыта в создании запросов. Поэтому и написал сюда.
У меня только один вариант - подставить конкретные даты перед временем в запросе
('17.01.2018 08:00:00', 'DD.MM.YYYY HH24:MI:SS'). но это не подойдет. Нужен универсальный скрипт.


between сравнивает даты
тебе надо время
to_time(created) BETWEEN to_time('08:00:00', 'HH24:MI:SS') AND to_time('18:00:00', 'HH24:MI:SS') 
17 янв 18, 11:30    [21113203]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2727
chuwees
Tactical Nuclear Penguin,

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


ты с ораклом не попутал?
а вообще почитай про DATEPART
17 янв 18, 11:30    [21113206]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
Tactical Nuclear Penguin,

Да какая разница, что там у него в качестве СУБД, если в голове каша и нет понимания, что "дата и время" в одном флаконе - это совсем не тоже самое, что просто "время"
17 янв 18, 11:35    [21113236]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
[quot Tactical ты с ораклом не попутал?
а вообще почитай про DATEPART[/quot]

Походу попутал :( надо в другом месте тему размещать?((
17 янв 18, 11:37    [21113244]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
Добрый Э - Эх
Tactical Nuclear Penguin,

Да какая разница, что там у него в качестве СУБД, если в голове каша и нет понимания, что "дата и время" в одном флаконе - это совсем не тоже самое, что просто "время"

Я смотрю ты тут самый умный? Царь и бог?) Ты родился и уже мог скрипт написать?? Сам когда-то учился и надо с уважением относиться к людям, которые учаться! А так ты смахиваешь на неудачника, который самоутверждается за счет других) И мне тебя жалко искренне
17 янв 18, 11:40    [21113258]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
chuwees,

да тут уж и спрашивай.... чего уж там.... но про extract(hour from <date>) (в оракле) я бы на твоем месте всё же почитал. если, конечно, версия сервера позволит....
17 янв 18, 11:44    [21113264]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
chuwees
Я смотрю ты тут самый умный? Царь и бог?) Ты родился и уже мог скрипт написать?? Сам когда-то учился и надо с уважением относиться к людям, которые учаться! А так ты смахиваешь на неудачника, который самоутверждается за счет других) И мне тебя жалко искренне
так ты "слона не продашь"(с)....
и не нужно проецировать свои комплексы на других...
кстаnи, в оракловую ветку форума не ходи. там Elic. Он тебя заклюет так, что мои слова тебе похвалой твоей любимой мамочки покажутся...
17 янв 18, 11:46    [21113271]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
Всем спасибо. Форум меня разочаровал немного. Надо добрее быть и писать по делу)

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

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')
17 янв 18, 11:47    [21113276]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
chuwees
Я смотрю ты тут самый умный? Царь и бог?)
Ну, уж поумнее некоторых, неспособный MS SQL Server отличить от Oracle. :)
17 янв 18, 11:48    [21113280]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
chuwees,

нафига нам эти типы данных, если мы всё в чары конвертим
17 янв 18, 11:48    [21113281]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
chuwees
Member

Откуда:
Сообщений: 29
Добрый Э - Эх,

Сосни)
17 янв 18, 11:48    [21113282]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
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')


не льсти себе.
кому на скульсерверной ветке форума может быть интересно твоё (кстати кривое) решение под оракл?
17 янв 18, 11:50    [21113287]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
chuwees
Добрый Э - Эх,

Сосни)
ну вот и вылезла твоя сущность наружу.... я же тебе уже говорид - не стоит проецировать собственные комплексы и проблемы на других.... если ты любишь посасывать, то это твое личное дело. не нужно нас погружать в такие интимные подробности.
17 янв 18, 11:51    [21113293]     Ответить | Цитировать Сообщить модератору
 Re: Данные из временного промежутка.  [new]
Добрый Э - Эх
Guest
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')
после таких опусов все скульсерверщики будут думать, что оракл отстой и простейшие вещи в нем делаются сложно и через (видимо, любимую тобой) жопу...
17 янв 18, 12:00    [21113322]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить