Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.04.2020, 15:24
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
вот например здесь чз BETWEEN можно? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.04.2020, 15:42
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
Не надо делать cast для полей. cast надо делать для переменных. Тогда есть какие-то шансы у индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.04.2020, 15:43
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
Гавриленко Сергей Алексеевич Не надо делать cast для полей. cast надо делать для переменных. Тогда есть какие-то шансы у индексов. ok ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.04.2020, 15:44
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
Можно. Только вот так Код: sql 1. 2.
Тогда Index Seek будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.05.2020, 16:45
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
invm Можно. Только вот так Код: sql 1. 2.
Тогда Index Seek будет работать. поясните плиз когда CAST для полей можно писать а когда нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.05.2020, 17:08
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
listtoview invm Можно. Только вот так Код: sql 1. 2.
Тогда Index Seek будет работать. поясните плиз когда CAST для полей можно писать а когда нет? Код: sql 1. 2.
индекс точно будет работать, а семантически она эквивалентна предыдущей. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.05.2020, 17:20
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
listtoview, Изучайте: https://docs.microsoft.com/en-us/archive/blogs/craigfr/implicit-conversions https://docs.microsoft.com/en-us/archive/blogs/craigfr/more-on-implicit-conversions ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.05.2020, 17:38
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
alexeyvg listtoview пропущено... поясните плиз когда CAST для полей можно писать а когда нет? Код: sql 1. 2.
индекс точно будет работать, а семантически она эквивалентна предыдущей. Нет, в первом случае отбрасывается время. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.05.2020, 19:10
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
msLex alexeyvg пропущено... Даже не знаю, какой смысл об этом задумываться, если для условийя Код: sql 1. 2.
индекс точно будет работать, а семантически она эквивалентна предыдущей. Нет, в первом случае отбрасывается время. Ну, всё равно не вижу смысла думать о тонкостях использования индекса, вместо того, что бы добавить сутки к @endDate, и заменить <= на < Это же даже естественней выглядит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 00:30
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
alexeyvg, 1) Хорошая практика это - не проводить операции над полями в инструкции where. 2) Использование between строит такой же план выполнения как и обычное сравнение. И с точки зрения оптимизации вы ничего не выигрываете. Но с точки зрения читаемости запросов это лучше и понятне. И также считается хорошей практикой. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 01:59
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
Fox Malder Использование between строит такой же план выполнения как и обычное сравнение. И с точки зрения оптимизации вы ничего не выигрываете. Но с точки зрения читаемости запросов это лучше и понятне. Здесь согласен Fox Malder И также считается хорошей практикой.а вот здесь не соглашусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 08:02
|
|||
---|---|---|---|
Как лучше фильтровать по дате? |
|||
#18+
Fox Malder 2) Использование between строит такой же план выполнения как и обычное сравнение. И с точки зрения оптимизации вы ничего не выигрываете. Но с точки зрения читаемости запросов это лучше и понятне. И также считается хорошей практикой. Код: sql 1. 2. 3.
С between нельзя отфильтровать записи за день, есмли не делать CAST поля в дату. Т.е. эти условия будут эквивалентны: Код: sql 1. 2.
но не Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 10:20
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
alexeyvg, согласен, писал ночью ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 10:37
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
SERG1257, Видео хорошее! Но оно больше о том, что нужно понимать, какими мы типами данных оперируем. И можем ли мы точно определить концы отрезка в оперируемом домене (типе данных). Если меня интересуют все даnы с 5 по 7 в домене date, то у меня уже не будет ни милисекунд, ни насекунд, ни типа datetime2 с повышенной тоностью. В том числе и даты, например, с 20 февраля по конец февраля, где я легко могу получить значение конца месяца в домене date, но что усложнит задачу, при решении ее в домене datetime2, и тогда мы открываем это видио и смотрим подводные камни. В коде, который я привел, я попался в эту ловушку: авторwhere rpl.Created between isnull( @startDate, '17530101' ) AND isnull( dateadd(dd,1,@endDate), '99991231' ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 10:42
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
SERG1257, Но between хорошо тем, когда мы точно можем определить концы отрезка. И нам не нужно делать >= для начала и строго меньше < для конца промежутка. Т.е. это наглядный эквивалент >= начало и <= конец. В остальных случаях, как в видео, конечно же мы используем операторы сравнения. Даже оператор isnull заменяет более длинную и не всегда удобную проверку на null. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 13:55
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
listtoview когда CAST для полей можно писать а когда нет? В правильно спроектированной базе и правильно написанном приложении CAST не используется никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 14:00
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
Dimitry Sibiryakov listtoview когда CAST для полей можно писать а когда нет? В правильно спроектированной базе и правильно написанном приложении CAST не используется никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 18:53
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
Гавриленко Сергей Алексеевич Все литералы желательно кастовать к типу поля явно. Особенно числовые. Вы всерьёз предлагаете писать "CAST(12345 as integer)"? Я понимаю, что в MS SQL нет литералов datetime, но это ещё один повод использовать в запросах параметры и типизованные переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 19:09
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
Dimitry Sibiryakov Вы всерьёз предлагаете писать "CAST(12345 as integer)"? Код: sql 1.
- стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 20:23
|
|||
---|---|---|---|
|
|||
Как лучше фильтровать по дате? |
|||
#18+
Dimitry Sibiryakov Гавриленко Сергей Алексеевич Все литералы желательно кастовать к типу поля явно. Особенно числовые. Вы всерьёз предлагаете писать "CAST(12345 as integer)"? Я понимаю, что в MS SQL нет литералов datetime, но это ещё один повод использовать в запросах параметры и типизованные переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&tablet=1&tid=1686053]: |
0ms |
get settings: |
18ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 317ms |
total: | 468ms |
0 / 0 |