Выберите определенный час и минуту из getdate () в SQL Server - PullRequest
0 голосов
/ 22 мая 2019
((DATEPART(HOUR, getdate()) BETWEEN 9 AND 15) or (DATEPART(HOUR, getdate())= 15 and (DATEPART(MINUTE, getdate()) between 00 and 30))) 

Приведенный выше запрос используется для выборки данных с 9:00 до 15:30 и за исключением 13:00.

Но мне нужно изменить этот запрос, чтобы получать данные с 09:30 до 15:30, кроме 13:00.

Может ли кто-нибудь помочь мне здесь?

Ответы [ 5 ]

1 голос
/ 22 мая 2019

Преобразование в time кажется самым простым решением здесь.

WHERE CONVERT(time,GETDATE()) >= '09:30:00' AND CONVERT(time,GETDATE())< '15:30:00'
  AND NOT(CONVERT(time,GETDATE())>= '13:00:00' AND CONVERT(time,GETDATE())< '14:00:00')

Или вы можете сделать:

WHERE ((CONVERT(time,GETDATE())>= '09:30:00' AND CONVERT(time,GETDATE())< '13:00:00')
   OR  (CONVERT(time,GETDATE())>= '14:00:00' AND CONVERT(time,GETDATE())< '15:30:00'))
0 голосов
/ 22 мая 2019

select * from test12 where (DATEPART(HOUR,Trackdatetime) >= 09 and DATEPART(MINUTE,Trackdatetime) >=30) and (DATEPART(HOUR,Trackdatetime) <= 15 and DATEPART(MINUTE,Trackdatetime) >=30) except select * from test12 where (DATEPART(HOUR,Trackdatetime) = 13 and DATEPART(MINUTE,Trackdatetime) = 00)

0 голосов
/ 22 мая 2019
where cast(cast(getDate() as float) - floor(cast(getDate() as float)) as datetime)
    between '09:30:00' and '15:30:00'
    and datepart(hour, getDate())<>13

или

where convert(time, getDate())
    between '09:30:00' and '15:30:00'
    and datepart(hour, getDate())<>13
0 голосов
/ 22 мая 2019

что-то похожее на вашу реализацию.

  • первое условие на период с 10:00 до 15:00

  • второе условие на период с 15:00 до 15:30PM

  • третье условие в период с 9:30 до 9,59

пример:

((DATEPART(HOUR, getdate()) BETWEEN 10 AND 15) 
or (DATEPART(HOUR, getdate())= 15 and (DATEPART(MINUTE, getdate()) between 00 and 30))
or (DATEPART(HOUR, getdate())= 9 and (DATEPART(MINUTE, getdate()) between 30 and 59)))

ПРИМЕЧАНИЕ. Исключение составляетне включены.

0 голосов
/ 22 мая 2019

со ссылкой на ваш запрос.

((DATEPART(HOUR, getdate()) BETWEEN 10 AND 14)
AND (DATEPART(HOUR, getdate()) <> 13)
or (DATEPART(HOUR, getdate())= 15 and (DATEPART(MINUTE, getdate()) between 00 and 30))
OR (DATEPART(HOUR, getdate())= 9 and (DATEPART(MINUTE, getdate())  between 30 and 59)))
...