|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#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:24 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Не надо делать cast для полей. cast надо делать для переменных. Тогда есть какие-то шансы у индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 15:42 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Не надо делать cast для полей. cast надо делать для переменных. Тогда есть какие-то шансы у индексов. ok ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 15:43 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Можно. Только вот так Код: sql 1. 2.
Тогда Index Seek будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 15:44 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
invm Можно. Только вот так Код: sql 1. 2.
Тогда Index Seek будет работать. поясните плиз когда CAST для полей можно писать а когда нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 16:45 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
listtoview invm Можно. Только вот так Код: sql 1. 2.
Тогда Index Seek будет работать. поясните плиз когда CAST для полей можно писать а когда нет? Код: sql 1. 2.
индекс точно будет работать, а семантически она эквивалентна предыдущей. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 17:08 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#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:20 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
alexeyvg listtoview пропущено... поясните плиз когда CAST для полей можно писать а когда нет? Код: sql 1. 2.
индекс точно будет работать, а семантически она эквивалентна предыдущей. Нет, в первом случае отбрасывается время. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 17:38 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
msLex alexeyvg пропущено... Даже не знаю, какой смысл об этом задумываться, если для условийя Код: sql 1. 2.
индекс точно будет работать, а семантически она эквивалентна предыдущей. Нет, в первом случае отбрасывается время. Ну, всё равно не вижу смысла думать о тонкостях использования индекса, вместо того, что бы добавить сутки к @endDate, и заменить <= на < Это же даже естественней выглядит. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 19:10 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
alexeyvg, 1) Хорошая практика это - не проводить операции над полями в инструкции where. 2) Использование between строит такой же план выполнения как и обычное сравнение. И с точки зрения оптимизации вы ничего не выигрываете. Но с точки зрения читаемости запросов это лучше и понятне. И также считается хорошей практикой. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 00:30 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Fox Malder Использование between строит такой же план выполнения как и обычное сравнение. И с точки зрения оптимизации вы ничего не выигрываете. Но с точки зрения читаемости запросов это лучше и понятне. Здесь согласен Fox Malder И также считается хорошей практикой.а вот здесь не соглашусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 01:59 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Fox Malder 2) Использование between строит такой же план выполнения как и обычное сравнение. И с точки зрения оптимизации вы ничего не выигрываете. Но с точки зрения читаемости запросов это лучше и понятне. И также считается хорошей практикой. Код: sql 1. 2. 3.
С between нельзя отфильтровать записи за день, есмли не делать CAST поля в дату. Т.е. эти условия будут эквивалентны: Код: sql 1. 2.
но не Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 08:02 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
alexeyvg, согласен, писал ночью ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 10:20 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#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:37 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
SERG1257, Но between хорошо тем, когда мы точно можем определить концы отрезка. И нам не нужно делать >= для начала и строго меньше < для конца промежутка. Т.е. это наглядный эквивалент >= начало и <= конец. В остальных случаях, как в видео, конечно же мы используем операторы сравнения. Даже оператор isnull заменяет более длинную и не всегда удобную проверку на null. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 10:42 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
listtoview когда CAST для полей можно писать а когда нет? В правильно спроектированной базе и правильно написанном приложении CAST не используется никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 13:55 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov listtoview когда CAST для полей можно писать а когда нет? В правильно спроектированной базе и правильно написанном приложении CAST не используется никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 14:00 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Все литералы желательно кастовать к типу поля явно. Особенно числовые. Вы всерьёз предлагаете писать "CAST(12345 as integer)"? Я понимаю, что в MS SQL нет литералов datetime, но это ещё один повод использовать в запросах параметры и типизованные переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 18:53 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Вы всерьёз предлагаете писать "CAST(12345 as integer)"? Код: sql 1.
- стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 19:09 |
|
Как лучше фильтровать по дате?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Гавриленко Сергей Алексеевич Все литералы желательно кастовать к типу поля явно. Особенно числовые. Вы всерьёз предлагаете писать "CAST(12345 as integer)"? Я понимаю, что в MS SQL нет литералов datetime, но это ещё один повод использовать в запросах параметры и типизованные переменные. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 20:23 |
|
|
start [/forum/topic.php?fid=46&msg=39964466&tid=1686053]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 411ms |
0 / 0 |