mysql - 还剩 5 天时,有没有办法显示临近的 DueDate 客户?VB.net mysql
问题描述
我想在客户状态中显示以下内容到即将到期的日期,而他们的到期日只剩下 5 天了。我从互联网上搜索了很多,但我仍然迷路了。我尝试了不同的查询,但仍然没有得到我想要的
这是我的代码:
Public Sub fillNearDue()
Dim dbDataSet As New DataTable
Dim sda As New MySqlDataAdapter
Dim bSource As New BindingSource
Dim todayD As String = DateTime.Now.ToString("yyyy-dd-MM")
connect()
'Dim cmd1 As New MySqlCommand("SELECT *, IF(now() > dueDate, 'EXPIRED', '') AS Expiry FROM payments", con)
' Dim cmd1 As New MySqlCommand("if(dueDate-now()*-1 <= 5, 'EXPIRED','') AS Expiry FROM payments", con)
'Dim cmd1 As New MySqlCommand("SELECT * FROM payments WHERE TIMESTAMPDIFF(day,'dueDate',CURRENT_TIMESTAMP()) < 1", con)
Dim cmd1 As New MySqlCommand("Select *, DATEDIFF(dueDate,now() ) as Days from payments where DATEDIFF( dueDate,now()) < 5", con)
sda.SelectCommand = cmd1
sda.Fill(dbDataSet)
bSource.DataSource = dbDataSet
GRDnearDue.DataSource = bSource
disconnect()
End Sub
解决方案
您的选择将为您提供 5 天内到期的所有 pymenst,以及今天已经到期的所有付款。因此,将 DATEDIFF 天数减少为仅正数,您将获得所需的所有数据。
尝试
Dim cmd1 As New MySqlCommand("Select *, DATEDIFF(dueDate,now() ) as Days
from payments where DATEDIFF( dueDate,now()) >= 0 AND DATEDIFF( dueDate,now()) <= 5", con)
您可以在 where 子句中添加所有已支付的款项,这将进一步减少行数
推荐阅读
- webpack-encore - 使用 webpack-encore 复制文件
- jackson - 将成功反序列化为 Instant 的默认字符串格式?
- mysql - Mysql删除查询忘记了Id约束
- javascript - 如何将所有值的总和添加为 Chart.Js 中圆环图的图表标题?
- r - 替换R中csv文件中列中的几个字符
- python-3.x - AttributeError:模块“资源”没有属性“getpagesize”
- php - 检查一个多边形是否在 PHP 中的另一个多边形内
- http - 从 http 请求加载图像
- java - 如何在 Hibernate 中使用限制之间选择记录?
- python - 以随机方式生成没有0值的矩阵