我的MySQL
数据库中有此表:
ID First_Name Date_Serve Time_Serve RFID_Tag Amount_Serve
--------------------------------------------------------------
1 John 17-11-2018 10:00:00 hdgdYun8JH Small
2 George 18-11-2018 11:00:00 kdjfHluhHB Big
并具有用于MySQL
查询的代码:
Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
Dim str As String = "Server=localhost;Port=3306;Database=testdb;Uid=root;Pwd=password123"
Using con As New MySqlConnection(str)
Dim query As String =
"select * from testdata where rfid_tag='" & TextBox3.Text &
"' and Date_Serve= '" & Date.Now.ToString("yyyy-MM-dd ") &
"' and Time_Serve= '" & Date.Now.ToString("HH:mm:ss ") &
"' or amount_serve=''"
Dim cm As New MySqlCommand(query, con)
con.Open()
Dim rd As MySqlDataReader = cm.ExecuteReader()
' Check if any rows exist
If rd.Read() Then
If rd.GetString(3) = "small" Then
MessageBox.Show("small")
ElseIf rd.GetString(3) = "Big" Then
MessageBox.Show("big")
ElseIf rd.GetString(3) = "Midium" Then
MessageBox.Show("Mid")
End If
End If
End Using
End Sub
我想做的是花些时间使距time_serve
的时间延迟15分钟。
例如,如果时间为10:00:00 AM
,则需要以10 AM
的价格为他服务,直到10:15 AM
。
我该如何实现?
使用我的代码,我可以在准确的时间为他服务,但是我需要范围之类的东西。
答案 0 :(得分:0)
我相信您正在寻找BETWEEN
您可能会问,在time_serve和您分配的额外时间之间是否存在一定的时间比率
这可能类似于:
SELECT * FROM testdata
WHERE @0 BETWEEN TIMESTAMP( Date_Serve, Time_Serve )
AND DATE_ADD( TIMESTAMP( Date_Serve, Time_Serve), INTERVAL 15 MINUTE ) )
其中@0
是当前日期时间的参数,您可以将其添加到查询本身。从代码中可见的内容,您不应该只是使用字符串简化来构建查询字符串本身,而应该看看MySqlParamater以及如何在查询中使用它们(但是我知道这不是问题的一部分)
请注意,我不确定将日期和时间列转换为DATETIME语句的最佳方法,似乎有些confusion here。另外,如果Time_Serve
还是查询的参数,您也可以只在Date_Serve
字段之间进行检查