Временные таблицы между предложением - включены строки, которые не должны быть?
У меня есть временная таблица SQL Server 2016. Я выполнил запрос, который можно увидеть ниже, вместе с результатами. Мне любопытно, почему включена строка, выделенная зеленым цветом. Значение ValidFrom встречается до даты начала "7/12/2018 19:16:00", а значение ValidTo наступает после даты окончания "7/12/2018 19:30:00".
Мое понимание BETWEEN / AND, которое может быть неверным, состоит в том, что он находит все строки, измененные между двумя моментами времени.
1 ответ
Предложение BETWEEN во временной таблице показывает те строки, которые были активны в течение выбранного периода времени. В более традиционных терминах строки, которые соответствуют этому критерию, устанавливают:
WHERE StartTime <= <EndDateTime>
AND EndTime > <StartDateTime>
Как вы можете видеть, это не требует фактической отметки времени, чтобы попасть в ваши даты между.