2015-03-02 5 views
0

Я работаю над частью моей системы под названием «Система управления учетными записями пациентов», и в ней есть Управление назначением, а в «Назначении» вы делаете временной интервал недоступным для других, проблема: есть 3 колонки, которые находятся в моей базе данных: дата (дата), TimeIn (Time), TimeOut (Time) это то, что я сделал до сих пор:SQL: выбор временного диапазона между двумя столбцами

sqlQuery = "SELECT * FROM appointment where date = '" & datePicker.Value.ToString("dd-MM-yyyy") & "' and TimeIn <= CAST('" & timeinPicker.value.ToString("HH:mm") & "' AS Time) and TimeOut >= CAST('" & timeoutPicker.value.ToString("HH:mm") & "' AS Time)" 

пример, если я поставил 12:00 на timeinPicker и с 13:00 до timeoutPicker, все время между 12:00 и 13:00 должно быть выбрано, но моя проблема в том, что он не будет выбран, он может выбрать его, только если я вводим ровно 12:00 и 13:00, но когда я ставлю 12:01 и 12:59 , sql can not выберите его, как будто он не существует есть ли способ выбрать их, чтобы я мог знать, какое время занято.

P.S. Я использую MySql

+0

http://stackoverflow.com/questions/25076559/mysql-query-between-two-dates-and-two-times – mohan111

+0

я получил некоторое представление от этого вопроса, им собираются попробовать сделать это например: sqlQuery = "SELECT * FROM meeting whe re date = '"& datePicker.Value.ToString (" dd-MM-yyyy ") &"' и (TimeIn <= CAST ('"& timeinPicker.value.ToString (" HH: mm ") &"' AS Time) и TimeOut> = CAST ('"& timeoutPicker.value.ToString (" HH: mm ") &"' AS Time)) " – user3882642

ответ

0

если вы используете Java означает, что заменить & символ с + и попробовать

sqlQuery = "SELECT * FROM appointment where date = '" + datePicker.Value.ToString("dd-MM-yyyy") + "' and TimeIn <= CAST('" + timeinPicker.value.ToString("HH:mm") + "' AS Timein) and TimeOut >= CAST('" + timeoutPicker.value.ToString("HH:mm") + "' AS Timeout)"; 
0

Первое, что вы должны использовать параметризованные запросы всегда, которые дают вам защиту от Sql Injection.
Вы можете изменить свой запрос, как это,

string query = "SELECT * FROM appointment where date = @DateValue and TimeIn <= CAST(@TimeInValue AS Time) and TimeOut >= CAST(@TimeOutValue AS Time)" 

А затем установите значения Paramters для следующих значений с помощью AddParamter() я не знаю язык программирования, который вы используете, так что будет подобный метод, чтобы добавить параметр использовать это,

@DateValue = datePicker.Value.ToString("dd-MM-yyyy") 
@TimeOutValue = timeoutPicker.value.ToString("HH:mm") 
@TimeInValue = timeInPicker.value.ToString("HH:mm") 
Смежные вопросы