我正在开发我的系统的一部分,称为患者记录管理系统,其中有一个预约管理,在预约中,您可以让其他人一旦占用某个时间段就无法使用,所以问题就在这里: 我的数据库中有 3 列:date(Date)、TimeIn(Time)、TimeOut(Time) 这就是我到目前为止所做的:
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 无法选择它,就像它不存在一样 有什么方法可以选择它们,以便我知道占用了哪些时间。
附注我正在使用 MySql
最佳答案
如果您使用的是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)";
关于mysql - SQL : Selecting the time range between two column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28802715/