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

Откуда:
Сообщений: 365
Нужно отобрать события за интервал дат по времени (типа с 2011-12-01 по 2011-21-30 с 16:00 до 7:00). По дате легко меньшая всегда меньше большей . А время бывает начальное больше конечного. Какие есть алгоритмы? Может было что то чего я не нашел поиском
19 янв 12, 11:34    [11930906]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
philips,

тип DATETIME или отдельно DATE и TIME?
19 янв 12, 11:38    [11930932]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
philips
Нужно отобрать события за интервал дат по времени (типа с 2011-12-01 по 2011-21-30 с 16:00 до 7:00). По дате легко меньшая всегда меньше большей . А время бывает начальное больше конечного. Какие есть алгоритмы? Может было что то чего я не нашел поиском

какие нафиг алгоритмы? есть дата и время событий, нужно найти события, произошедшие в некотором периоде. пипец, даже в детском саду дети знают эти мегаалгоритмы
19 янв 12, 11:47    [11931027]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Зайцев Фёдор
philips
Нужно отобрать события за интервал дат по времени (типа с 2011-12-01 по 2011-21-30 с 16:00 до 7:00). По дате легко меньшая всегда меньше большей . А время бывает начальное больше конечного. Какие есть алгоритмы? Может было что то чего я не нашел поиском

какие нафиг алгоритмы? есть дата и время событий, нужно найти события, произошедшие в некотором периоде. пипец, даже в детском саду дети знают эти мегаалгоритмы
В примере начала интервалов в одних сутках, а концы - в других.
Может, в этом заключается трудность для автора?
19 янв 12, 11:50    [11931041]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
100% sql-ex и база aero)))
19 янв 12, 11:55    [11931090]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
Glory
Member

Откуда:
Сообщений: 104751
philips
с 16:00 до 7:00

Это два интервала - >= 16 and <=23 or >=0 and < 7
19 янв 12, 11:55    [11931094]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
philips
Member

Откуда:
Сообщений: 365
Glory
philips
с 16:00 до 7:00

Это два интервала - >= 16 and <=23 or >=0 and < 7

Это я понял.
Ну а если надо 16:00 -22:00 - то один интервал.
Case в Where нет ?
19 янв 12, 12:23    [11931375]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
Glory
Member

Откуда:
Сообщений: 104751
philips
Case в Where нет ?

CASE есть везде. Ибо это функция.
19 янв 12, 12:26    [11931419]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
iap
В примере начала интервалов в одних сутках, а концы - в других.
Может, в этом заключается трудность для автора?

какие-либо трудности могут быть только в случае, когда у событий нет даты, а есть только время. типа ежедневные события.
лечится превращением одного события-со-временем в много событий-с-датойвременем
19 янв 12, 12:36    [11931538]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Зайцев Фёдор
iap
В примере начала интервалов в одних сутках, а концы - в других.
Может, в этом заключается трудность для автора?

какие-либо трудности могут быть только в случае, когда у событий нет даты, а есть только время. типа ежедневные события.
лечится превращением одного события-со-временем в много событий-с-датойвременем
Я так понял, что это тот самый случай
19 янв 12, 12:48    [11931671]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
philips
Member

Откуда:
Сообщений: 365
Событие datetime
а трудность была в одном и двух интервалах времени
19 янв 12, 12:50    [11931690]     Ответить | Цитировать Сообщить модератору
 Re: MS2008R2 вырезать интервал по времени  [new]
philips
Member

Откуда:
Сообщений: 365
Glory
philips
с 16:00 до 7:00

Это два интервала - >= 16 and <=23 or >=0 and < 7

решил типа
declare @timemin time ,@timemax time,@time1 time, @time2 time ,@time as datetime
set @time=  '2011-01-01 8:00'
set @timemin ='16:00'
set @timemax ='07:00'

If  @timemin < @timemax
begin
	Set @time1 = @timemax
	Set @time2  =null
end
else  
begin
	set @time1 ='23:00'
	set @time2   ='00:00'
end

IF (cast(@time as time) between @timemin and @time1) or (cast(@time as time) between @time2 and @timemax)
 Print 'да'
else 
 Print 'нет'
19 янв 12, 12:52    [11931713]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить