Member 12523149 Ответов: 1

Диапазон времени между двумя временами


Sql server как выбрать временной диапазон между двумя столбцами раз. Может ли кто-нибудь объяснить, как это сделать как можно скорее

Что я уже пробовал:

запрос select * from имя_таблицы
где starttime < @starttime
и endtime > @entime

Richard Deeming

where starttime < @starttime and endtime > @endtime
На первый взгляд, это ваша проблема: вы ищете записи, которые начинаются до указанное время начала и окончания после указанное время окончания.

Если вы хотите выбрать записи, которые падают между указанное время начала и окончания, вам нужно будет отменить эти операторы:
where starttime >= @starttime and endtime <= @endtime

1 Ответов

Рейтинг:
2

OriginalGriff

Когда у вас возникают подобные проблемы, это часто происходит из-за того, что база данных была разработана неправильно.
Начните с проверки определений столбцов: если starttime и endtime не являются столбцами DATE, DATETIME или DATETIME2, то никакие запросы, связанные с датой, не будут работать, поскольку они будут рассматриваться как сравнения на основе string=. С ними все сравнение основано на первом различном символе в двух строках, поэтому "01-01-2017 "идет перед" 31-12-2016 " и так далее.

Если столбцы в порядке, проверьте значения параметров: опять же, это должны быть значения DateTime на вашем родном языке представления, который передает их, а не строки - в противном случае SQL должен "угадать", являются ли они "dd-mm-yy", "mm-dd-yy" или "yy-dd-mm", и он часто будет ошибаться.

Если все в порядке, посмотрите на данные и значения параметров вручную и убедитесь, что существуют некоторые значения, соответствующие обоим условиям.

Извините, но мы не можем этого сделать: у нас нет доступа к вашему коду или данным!


Member 12523149

Спасибо за быстрый повтор. Мой тип данных starttime и endtime time я использовал и хранил так (HH:mm: ss) и как сравнивать между двумя временами

OriginalGriff

И что же?
"посмотрите на данные и значения параметров вручную и проверьте, что существуют некоторые значения, которые соответствуют обоим условиям."
Что вы нашли?