VB.net,SQL 2012,选择日期为今天的手机数据

时间:2017-06-07 14:08:16

标签: sql-server vb.net

我正在制作一个墙板应用,它显示SQL 2012服务器中数据库的所有通话记录。我一直在尝试左右两边的东西但是一切都给出了执行select命令的两个错误之一:

  

“从字符转换日期和/或时间时转换失败   字符串“

  

“无效的列名'07 / 07/2017 2017 15:03:35'。”

这是一个SQL select命令示例,我有:

SELECT * FROM dbo.tblCallList WHERE CategoryId = 1 AND CreateDate > """ & DateToday & """"

我为我所在的公司开发了一个不同的墙板程序,当我尝试从当前日期检索数据时,它使用上面的select命令(显然已经调整)并且只有这样才开始出现问题我

编辑:oops,它说DateToday我的意思是DateY昨天,我的不好

编辑*:这是我用来基本上计算今天发生的电话数量的代码,它可能是垃圾,但它来自我之前在这里的人,当我被告知继续他的工作时我刚刚使用和即兴创作了他的代码,因为它正在工作,我使用的数据库都是相似的,如果不是相同的

SDACallsP = New SqlDataAdapter(cmdCallsP, conn)
Dim num_calls_parceiros = SDACallsP.Fill(data_set, "dbo.tblCallList")
cs_parceiros.Text = num_calls_parceiros


cmdCallsP = String.Format("SELECT * FROM dbo.tblCallList WHERE CategoryId = 1 AND CreateDate > ''" & DateYesterday & "''")
Dim DateYesterday As Date = Date.Today.AddDays(-1).ToString("yyyy-MM-dd")

2 个答案:

答案 0 :(得分:1)

你的第一个问题是使用双引号(“)。在SQL Server中你应该使用单引号(')

SELECT * FROM dbo.tblCallList WHERE CategoryId = 1 AND CreateDate > '" & DateToday & "'"

但是,您不应该按时间查询日期。可能是您的最佳解决方案如下:

SELECT * FROM dbo.tblCallList WHERE CategoryId = 1 AND CreateDate > cast('" & DateToday & "' as date)"

答案 1 :(得分:0)

您尝试过: cmdCallsP = String.Format(“SELECT * FROM dbo.tblCallList WHERE CategoryId = 1 AND CreateDate>'”& DateY yesterday.ToString&“'”)

我认为你不需要双引号