Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Sasha
Guest |
Можно ли в MSS изменить формат даты, что бы он работал не с mm.dd.yyyy , а с dd.mm.yyyy |
17 ноя 00, 07:15 [2046] Ответить | Цитировать Сообщить модератору |
petr13
Guest |
В случае использовании констант (напремер в Where или Install) пользуйся Set dataformat dmy -- день, месяц, год При выборках - используй функцию CONVERT |
17 ноя 00, 10:26 [2047] Ответить | Цитировать Сообщить модератору |
Oleg F
Guest |
Что если пошлёшь запрос вида SELECT .... FROM ... WHERE CONVERT(поле_даты),...) = ... То индекс по этому полю (если он есть) использоваться не будет. Впрочем, это касается любого поля (не только даты). Если при поиске идёт обращение не к полю напрямую, а через функцию, то поиск ведётся путём сканирования всей таблицы данных. Так что использование SET DATEFORMAT предпочтительней. |
20 ноя 00, 16:05 [2048] Ответить | Цитировать Сообщить модератору |
Dmitry
Guest |
Это относится ко всем индексам? (независимо от того кластерный он или некластерный?) И не зависит ли от вида функции. Если есть ссылочка на эту тему, буду весьма признателен. Кстати, можно ведь использовать и наоборот where <поле даты>=Convert(datetime,<константа/выражение>,<формат даты> ![]() |
21 ноя 00, 10:22 [2049] Ответить | Цитировать Сообщить модератору |
Oleg F
Guest |
"Кстати, можно ведь использовать и наоборот where <поле даты>=Convert(datetime,<константа/выражение>,<формат даты>" Да, действительно, в этом случае SQL Server может использовать индекс. Я не могу сказать, есть ли в документации информация про взаимоотношения индексов и функций. Я сам пришёл к этому выводу, анализируя планы выполнения различных запросов к полям разных типов. Т.е. эмпирическим путём. Не думаю, что разница "кластерный" или "некластерный" как-то повлияет на работу оптимизатора запросов. Т.к. кластерный индекс лишь определяет способ физического расположения строк в таблице (т.е. в отсортированном порядке), но не способ поиска. В документации я нашёл только явное утверждение про LIKE, что если LIKE 'значение%', то индекс будет использоваться, а если LIKE '%значение', то не будет. |
21 ноя 00, 10:50 [2050] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |