在 SQL 和 VB.NET 中检查日期是不是小于另一个
Posted
技术标签:
【中文标题】在 SQL 和 VB.NET 中检查日期是不是小于另一个【英文标题】:Check if date is less than another in SQL and VB.NET在 SQL 和 VB.NET 中检查日期是否小于另一个 【发布时间】:2012-03-01 14:34:16 【问题描述】:我有 2 个 SQL 表(A 和 B),其日期格式为 DD/MM/YYYY 和时间,例如 01/03/2012 00:00:00。在我的 VB.net 应用程序中,我希望计算表 A 中日期小于表 B 中的记录数。从数据库中获取日期没有问题。我已经提取了表 B 中的日期并将其存储在程序中。我只是不确定如何比较 SQL 查询中的日期。
简而言之,我想做的是:
"select count(records) as totalRecords from table A where date < " & dateBvariable & ""
任何帮助表示赞赏
【问题讨论】:
您所拥有的一切都很好 - 假设dateBvariable
实际上是一个日期。不过,您可能需要单引号。尽管您使用的是“小于”符号,但将日期称为“早于”会更清楚。
【参考方案1】:
试试
"select * from lk.media_months where begin_on < cast('" & dateVarialbe & "' as DATETIME)"
【讨论】:
不得不稍微改变这一点,但为我指明了正确的方向,谢谢。最后使用了这个: CONVERT(DATETIME, '" & Format(date(i), "yyyy-MM-dd") & " 00:00:00', 102))【参考方案2】:如果您在'
引号中将日期作为字符串传递,它可能会起作用:
where date < '" & dateBvariable & "'"
或将其格式化为 ODBC 标准:
where date < '" & dateBvariable.ToString("yyyy-MM-dd HH:mm:ss") & "'"
更好的是传递一个参数:
where date < @par1
并将参数添加到SqlCommand
:
command.AddWithValue "@par1", dateBvariable
【讨论】:
尝试了所有这些,但仍然没有运气。现在要尝试在 SQL 中进行转换,看看我是否有运气。感谢您的建议【参考方案3】:尝试使用参数来设置日期。例如:
Dim sqlCmd As New SqlCommand("select count(records) as totalRecords from tableA where dateField < @DateParam")
sqlCmd.Parameters.AddWithValue("@DateParam", DateTime.Today)
【讨论】:
以上是关于在 SQL 和 VB.NET 中检查日期是不是小于另一个的主要内容,如果未能解决你的问题,请参考以下文章
从 vb.net 中的 datetime sql server 类型操作日期和时间
如何将 vb.net 中日期的空值传递给 sql 存储过程?