我正在制作一个墙板应用,它显示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")
答案 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&“'”)
我认为你不需要双引号