|
Тема |
Re: search by date [re: lvo] |
|
Автор |
lele (Pif4e) |
|
Публикувано | 18.08.03 14:24 |
|
|
здр. ще пиша в тази тема, понеже е сходна с това което искам да попитам
имам таблица в която една от колоните е тип date
id - smallint PRI
perform - date not null -> индексирана
по това поле perform ще се търси, като в идеалният случай ще имам:
WHERE perform BETWEEN 'xxxx-xx-xx' AND 'yyyy-yy-yy' - така ще се използва индекса, (аз лично трябва да благодаря на salle за това му предложение в един от отговорите по-горе)
В по-лошият случай обаче ще разполагам само с една от тези дати, а в още по-лошия - само с част от датата - месец или година или ден, или месец и ден например.
при което не виждам как ще стане с BETWEEN, а първото което ми хрумва е
WHERE MONTH(perform) > x1 AND DAYOFMONTH(perform) > x2
при което използването на индекса заминава ...
та въпроса ми е, дали има начин да се използва този индекс при горното положение, когато имам само част от датата. Могат да се срещнат всякакви комбинации от частите на двете дати, т.е. да имам например ден от първата и месец от втората ( DAYOFMOTNH(perform) > x1 AND MONTH(perform) < x2 ), и пр.
|
| |
|
|
|