можно ли и как сделать подобный по смыслу запросselect * from table
where DATETIME_FIELD between '10:00:00' and '10:59:59'то есть есть поле типа DATETIME (дата и время)
нужна выборка всех значений в интервале времени (пофиг на дату)без разбиения поле DATETIME на 2 поля DATE и TIME
Забыл добавить - версия MySQL 4.0.20`TIME()' is available as of MySQL 4.1.1.
>можно ли и как сделать подобный по смыслу запрос
>
>select * from table
>where DATETIME_FIELD between '10:00:00' and '10:59:59'
>
>то есть есть поле типа DATETIME (дата и время)
>нужна выборка всех значений в интервале времени (пофиг на дату)
>
>без разбиения поле DATETIME на 2 поля DATE и TIME<...>
where
hour(DATETIME_FIELD) * 3600 + minute(DATETIME_FIELD) * 60 + second(DATETIME_FIELD) <
10 * 3600 + 00 * 60 + 00
and
hour(DATETIME_FIELD) * 3600 + minute(DATETIME_FIELD) * 60 + second(DATETIME_FIELD) >
10 * 3600 + 59 * 60 + 59or something like this ;)
>or something like this ;)очень похоже.
однако теперь встал другой вопрос:
будет ли использован индекс поля DATETIME_FIELD ?а) при таком запросе
б) при запросе TIME(DATETIME_FIELD) between TIME1 and TIME2 в mysqld > 4.1.11предполагаю, что индекс НЕ БУДЕТ использован в обоих случаях
буду проверять
>будет ли использован индекс поля DATETIME_FIELD ?
>
>а) при таком запросе
>б) при запросе TIME(DATETIME_FIELD) between TIME1 and TIME2 в mysqld > 4.1.11
>Можно попробовать сказать explain <sql text> - очень часто это открывает глаза на многое ;)
>можно ли и как сделать подобный по смыслу запрос
>
>select * from table
>where DATETIME_FIELD between '10:00:00' and '10:59:59'
>
>то есть есть поле типа DATETIME (дата и время)
>нужна выборка всех значений в интервале времени (пофиг на дату)
>
>без разбиения поле DATETIME на 2 поля DATE и TIME
Может я чего то не понял ...
Но разве так нельзя ? :
select * from table where HOUR(DATETIME_FIELD)=10и еще: скорей всего в 4-м мускуле нет, но может появилось в пятом - построение мндекса с указанием функции (в данном случае 'HOUR(DATETIME_FIELD)')... ну как то так в постгресе имеется
>Может я чего то не понял ...
>Но разве так нельзя ? :
>select * from table where HOUR(DATETIME_FIELD)=10Это я не точно определил задачу.
Диапазон время произвольный, например: 10:15:00 - 17:39:52>и еще: скорей всего в 4-м мускуле нет, но может появилось в
>пятом - построение мндекса с указанием функции (в данном случае 'HOUR(DATETIME_FIELD)')...
>ну как то так в постгресе имеетсяИнтересная информация, спасибо.