mysql - MySQL VB.Net 中的时间范围验证

标签 mysql vb.net

我的数据库表中有教授的schedule_tbl,并且有starting_time、ending_time 和day 列。我想做的是,如果我插入从 7:00:00 到 10:00:00 的开始,那么所有计数器 7:00:00-10:00:00 都是无效的。

我的记录示例

starting_time     ending_time     day
7:00:00           10:00:00        Monday

插入

6:00:00           8:00:00         Monday

那么它一定是无效的。到目前为止,这是我的代码。

    ("SELECT * FROM schedule_tbl WHERE "' and starting_time >= '" & _
 Me.dtpStart.Value.ToString("HH:mm:ss") & "' and ending_time <= '" & _
 Me.dtpEnd.Value.ToString("HH:mm:ss") & "' and day = '" & ComboBox4.Text & "'", conn3)

它可以工作,但仅限于starting_time和ending_time之间的范围。如果我输入6:00:00作为starting_time9:00:00作为ending_time,它添加到数据库中应该是无效 .

最佳答案

确定两个周期是否重叠的正确逻辑是,第一个周期在第二个周期结束之前开始,第一个周期在第二个周期开始之后结束。获得重叠的逻辑如下所示:

SELECT s.*
FROM schedule_tbl s
WHERE s.starting_time < $EndTime and
      s.ending_time > $StartTime;

注意:您可能需要 >=<=解决你的问题而不是严格的不平等。

关于mysql - MySQL VB.Net 中的时间范围验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537273/

相关文章:

php - when in 从句与 mysql pdo

C# 出现 500 错误,VB 没有?

c# - 如何在C#和VB.NET中模拟C++ friend ?

vb.net - 如何从 FileDialog.FileName 返回的路径中删除文件名?

vb.net - 如何使用 LINQ 获取具有特定子项的所有项?

MySQL 查询选择每天有多个条目的所有用户

PHP变量初始化到数据库查询

mysql - 仅在 MYSQL DATEDIFF 中显示小时数

mysql - 选择mysql中每组的顶行

vb.net - 如何从 VB.Net 中的 DataGridView 获取单元格值?