СОДЕРЖИТ В (@start, @end) VS МЕЖДУ - временные таблицы - PullRequest
0 голосов
/ 27 августа 2018

Временные таблицы - это новая функция в SQL Server 2016 и выше, для SQL Server это интересный способ автоматического сохранения истории данных в таблице, однако есть некоторые новые T-SQLсинтаксис введен в SQL Server 2016 для поддержки временных таблиц.Я столкнулся с недопониманием некоторых из них.

Из официальной документации описание BETWEEN <start_date_time> AND <end_date_time> выглядит следующим образом:

То же, что и выше в FOR SYSTEM_TIME FROMОписание TO, кроме возвращаемой таблицы строк, содержит строки, которые стали активными на верхней границе, определенной конечной точкой.

, а описание CONTAINED IN (<start_date_time>, <end_date_time>) выглядит следующим образом: -

Возвращает таблицу со значениями для всех версий строк, которые были открыты и закрыты в течение указанного временного интервала, определенного двумя значениями datetime для аргумента CONTAINED IN.Строки, которые стали активными точно на нижней границе или перестали быть активными точно на верхней границе, включены.

, поэтому, как я понял, единственным предложением Различного между CONTAINED IN (@start,@end) и BETWEEN является CONTAINED IN (@start, @end) включает в себя границу @start, а предложение BETWEEN - нет.Я прав?

1 Ответ

0 голосов
/ 01 января 2019

В этой статье , @ Ameena Lalani объясняются и демонстрируются различные варианты поиска во временной таблице, объясняются очень хорошо, убедитесь, что вы прочитали всю статью.

Чтобы кратко подвести итог:

  • FROM <start_datetime> TO <end_datetime>
    возвращает результат, комбинирующий временную таблицу и таблицу истории, исключая верхнюю границу времени окончания.
  • BETWEEN <start_datetime> AND <end_datetime>
    Возвращает объединенный результат из временных и исторических таблиц, включая верхнюю границу времени окончания.
  • CONTAINED IN (start_datetime, end_datetime)
    Возвращает результаты только из таблицы истории и включает в себя как верхнюю, так и нижнюю границы времен.

Вот скриншот из этой статьи:

...