Добрый день, у меня есть sql запрос который тянет данные с 7 утра до 7 вечера, выглядит он так: PHP: SELECT * FROM database WHERE [Date] >=(SELECT DATEADD(hour,7, DATEDIFF(dd, 0, GETDATE()))) AND [Date] <=(SELECT DATEADD(hour,19, DATEDIFF(dd, 0, GETDATE()))) order by [Date] desc Теперь есть необходимость не брать какие то отрезки времени. Например не берем данные с 12 до часу дня. Подскажите почему так не работает?: PHP: SELECT * FROM database WHERE [Date] >=(SELECT DATEADD(hour,7, DATEDIFF(dd, 0, GETDATE()))) AND [Date] <= '2018-22-11 12:00:00' AND [Date] >= '2018-22-11 13:00:00' AND [Date] <=(SELECT DATEADD(hour,19, DATEDIFF(dd, 0, GETDATE()))) order by [Date] desc --- Добавлено --- В php это у меня выглядит так вот, нужно будет по условию добавить дополнительные запросы через foreach наверное PHP: $this->db->where("Date >=(SELECT DATEADD(hour,".$a.", DATEDIFF(dd, 0, GETDATE())))"); // здесь будут дополнительные выборки по времени. $this->db->where("Date <=(SELECT DATEADD(hour,".$b.", DATEDIFF(dd, 0, GETDATE())))");
@MouseZver Пробовал, не тянет: PHP: SELECT * FROM database WHERE [Date] BETWEEN DATEADD(hour,7, DATEDIFF(dd, 0, GETDATE())) AND '2018-22-11 12:00:00' AND [Date] BETWEEN '2018-22-11 13:00:00' AND DATEADD(hour,19, DATEDIFF(dd, 0, GETDATE())) order by [Date] desc Если закомментировать 2ой between то тянет до 12:00, не отличается результат от того что был =(
@MouseZver Круто, все получилось, спасибо большое, кланиюся PHP: SELECT * FROM database WHERE [Date] BETWEEN DATEADD(hour,7, DATEDIFF(dd, 0, GETDATE())) AND DATEADD(hour,19, DATEDIFF(dd, 0, GETDATE())) AND [Date] NOT BETWEEN '2018-22-11 12:00:33.820' AND '2018-22-11 13:39:33.820' AND [Date] NOT BETWEEN '2018-22-11 09:00:33.820' AND '2018-22-11 10:39:33.820' // и т.д. Сам бы я не допер точно.