VB.NET-SQL请求不接受=个字符



此请求非常有效:

Dim cmd1 As New OleDbCommand("SELECT * FROM table1 WHERE dat_recep > #10/14/2022# ORDER BY dat_recep DESC", conn)

它适用于><<>,但不能用于=

它不会生成任何错误,只是返回一个空表。

我不想使用类似的东西:

WHERE dat_recep < #10/15/2022# & dat_recep > #10/13/2022#

知道=为什么不被接受吗?

=按预期工作-它只允许与精确日期时间值2022-10-14 00:00:00匹配的行。dat_recep包含不同于00:00:00的时间的任何行都将被过滤掉。

利用索引的一种解决方案是筛选dat_recep大于或等于2022-10-14但小于第二天的行。

Dim startInclusive As DateTime = somDate.Date
Dim endExclusive As DateTime = startInclusive.AddDays(1)
Dim sql As String = "SELECT * FROM table1 
WHERE dat_recep >= ? 
AND dat_recep < ? 
ORDER BY dat_recep DESC"
Dim cmd1 As New OleDbCommand(sql, conn)
cmd.Parameters.AddWithValue("@start",startInclusive);
cmd.Parameters.AddWithValue("@end",endExclusive);

最新更新