【问题标题】: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 实际上是一个日期。不过,您可能需要单引号。尽管您使用的是“小于”符号,但将日期称为“早于”会更清楚。

标签: sql vb.net


【解决方案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)

【讨论】:

    猜你喜欢
    • 2021-02-24
    • 2015-03-11
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    相关资源
    最近更新 更多