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

Откуда:
Сообщений: 31
Добрый день.
Есть таблица с датами, где запись делается каждый час.
Нужно прописать запрос на фильтрацию значений только на 00 часов 00 минут.
Пробовал сделать вот так: where DataDate like '%00:00%' = не работает.

Подскажите пожалуйста как правильно написать запрос?!
9 июн 16, 13:27    [19275760]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
А форматировать твой DataDate в строку кто будет?
И форматируй уж сразу в "hh:mm" - тогда вместо LIKE можно использовать прямое сравнение.
9 июн 16, 13:31    [19275799]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
StarikNavy
Member

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

datepart
9 июн 16, 13:32    [19275808]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
o-o
Guest
where dt = cast(dt as date) ???

declare @dt table (id int, dt datetime);
insert into @dt 
values (1, getdate()), (2, '20160102 13:00:00'), (3, '20160104 00:00:00');

select *
from @dt
where dt = cast(dt as date);
---
id	dt
3	2016-01-04 00:00:00.000
9 июн 16, 13:34    [19275821]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
invm
Member

Откуда: Москва
Сообщений: 9833
where DataDate = cast(DataDate as date)
9 июн 16, 13:35    [19275833]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
kristow
Member

Откуда:
Сообщений: 31
Спасибо всем за ответы.
Понял что малость ступил...
Использовал решение cast() - Получил что хотел ;)
9 июн 16, 13:42    [19275864]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
Владислав Колосов
Member

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

where hour(d)+minute(d)=0
9 июн 16, 14:56    [19276371]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос фильтр даты на 00 часов.  [new]
o-o
Guest
Владислав Колосов
kristow,

where hour(d)+minute(d)=0



1) @@version - ?
declare @dt table (id int, dt datetime);
insert into @dt 
values (1, '20160104 00:00:00.555');

select *
from @dt
where hour(dt)+minute(dt)=0 

Msg 195, Level 15, State 10, Line 7
'hour' is not a recognized built-in function name.


2) wrong result
declare @dt table (id int, dt datetime);
insert into @dt 
values (1, '20160104 00:00:00.555');
select *
from @dt
where datepart(HOUR,dt)+datepart(MINUTE,dt)=0 
----
1	2016-01-04 00:00:00.557


3) exclude possible indexes on dt
9 июн 16, 16:11    [19277016]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить