![](/img/trans.png)
[英]How to get/filter data between two date by using DataGrid in vb.net WPF and MySQL?
[英]vb.net get database data between two date
我有两个 datetimepicker,startDate 存储的是 datetimepicker1 值,endDate 存储的是 datetimepicker2 值。
我想从数据库中获取 startDate 和 endDate 之间的数据。
Dim bSql As String = "select date, sum(total_price) from bill where Date = '" & Format(startDate, "yyyy/MM/dd") & " and Date='" & Format(endDate, "yyyy/MM/dd") & "'"
我试过上面的代码,但它不能工作。 任何人都可以帮助我吗?
如果您试图为日期查找字符串格式,那么您已经失败了。 试试这个:
Dim bSql As String = "select date, sum(total_price) from bill where Date >= @startDate and Date < @endDate;"
Using cn As New MySqlConnection("connection string here"), _
cmd As New MySqlCommand(bSql, cn)
cmd.Parameters.Add("@startDate", SqlDbType.DateTime).Value = startDate
cmd.Parameters.Add("@endDate", SqlDbType.DateTime).Value = endDate.AddDays(1)
cn.Open()
'...
End Using
不需要或不需要格式。
试试这个,使用 SQL BETWEEN 运算符,它允许您指定范围的下限和上限。
Dim bSql As String = "select date, sum(total_price) from bill where Date BETWEEN '" & startDate.ToString("yyyy/MM/dd") & "' AND '" & endDate.ToString("yyyy/MM/dd") & "' GROUP BY date;"
您还需要应用分组以使用聚合函数“SUM”:
-- find all dates with sales and the total prices on each date
SELECT [date], SUM(total_price) AS [TotalPrice]
FROM bill
WHERE [date] BETWEEN '2013-01-01' AND '2013-12-31' -- use appropriate date format here
GROUP BY [date];
在数据库中我有 DD/MM/YYYY 解决方案是在 VB MM/DD/YYYY 中制作
这是一个代码
oldbc.CommandText = "select * from recette where Date between #10/09/2015# and #10/011/2015#"
尝试像这样格式化您的日期(您还需要使用 DateTimePicker 的值):
Format(startDate.Value, "yyyy-MM-dd")
更好的选择是使用参数化查询,然后您不必将日期格式化为任何特定格式。 更多信息: 如何创建参数化 SQL 查询? 我为什么要?
Dim bSql As String = "select date, sum(total_price) from bill where Date = " & DateTimePicker1.Text & " and Date=" & DateTimePicker1.Text & ""
设置日期时间选择器日期格式。 我希望它对你有帮助......
另一种可能性是制作一个小函数来格式化 DATE 变量并为 MySQL 返回正确的日期字符串语法。
Public Function MySQLDate(inDate As Date) As String
Return "'" & inDate.ToString(format:="yyyy'/'MM'/'dd") & "'"
End Function
现在您的查询更具可读性,更易于创建,如下所示:
Dim bSql As String = "select date, sum(total_price) from bill where Date BETWEEN " & MySQLDate(startDate) & " and " & MySQLDate(endDate)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.