在 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 判断数字是不是为日期型

如何将 vb.net 中日期的空值传递给 sql 存储过程?

VB.NET SQL 日期比较

使用 VB.NET 表单从 SQL Server 到 Excel 的日期数据检索

在日期 VB.NET 和 Access 数据库之间过滤