У меня есть эта таблица в моей базе данных 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
Что я хочу сделать, так это со временем сделать 15-минутную задержку с time_serve.
.
Например, если время 10:00:00 AM, необходимо подать ему его сумму в 10 AM до 10:15 AM.
.
Как я могу этого добиться?
С моим кодом я могу обслуживать его в точное время, но мне нужно что-то вроде диапазона.






Я считаю, что вы ищете МЕЖДУ
Там вы можете спросить, есть ли определенная временная ставка между 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, похоже, есть путаница здесь. В качестве альтернативы вы также можете просто проверить поле Time_Serve, если Date_Serve также является аргументом вашего запроса.
Я сделал так, как будто этот формат бу не работал Dim query As String = "select * from testdata where getdate() BETWEEN TIMESTAMP(Time_Serve ) and rfid_tag='" & TextBox3.Text & "' and Date_Serve= '" & Date.Now.ToString("yyyy-MM-dd ") & "' and DATE_ADD( TIMESTAMP(Time_Serve), INTERVAL 10 MINUTE) or spring_size='' "
@MohammadKhaled, но ваш запрос неверен, между ними предшествует одно выражение, за которым следуют начало и конец (поэтому 2 аргумента разделены AND), проверьте ссылку, которую я предоставил с ним. Ваша запись rfid не имеет ничего общего с time_serve
может помочь что-нибудь вроде
ADD_DATE? w3schools.com/sql/func_mysql_date_add.asp