基本上,我在SQL表中有一个日期列表,每个日期旁边都有一些统计信息。我想将表中的日期与我选择的某个日期进行比较。但是,我在表格中的日期存储为Varchar(50)(并且必须存在)。显然我可以将表中的日期转换为日期类型,但我不知道。有谁知道怎么样?我目前的代码如下所示。
If Chosen = "Today" Then
DateStop = Today.AddDays(-1)
Dim objCmd As New SqlCommand("SELECT COUNT(*) FROM Stats where (Date > " & DateStop & ")", objConn)
MessageBox.Show("SELECT COUNT(*) FROM Stats where (Date > " & DateStop.Date & ")")
ObjDataReader = objCmd.ExecuteReader
test = ObjDataReader(0)
MessageBox.Show(test)
End If
提前致谢。
编辑:当我知道在我尝试的那天之前和之后我的桌子上肯定有日期时,我一直收到没有数据存在的错误。
答案 0 :(得分:0)
Select Count(*) From Stats where (CAST(Date as DateTime) > " & DateStop & ")"
将其用于您的查询
答案 1 :(得分:0)
首先,您可以使用存储过程吗?
如果这样做,您可以使用您需要的代码创建一个SP,并在SP的开头添加以下命令
set dateformat 'ymd';
我使用'ymd'但你也可以使用其他格式。
如果您无法查看T-SQL函数CONVERT
答案 2 :(得分:0)
答案 3 :(得分:0)
我认为你缺少的是objCmd.Read()
。或者您可以使用objCmd.ExecuteScalar()
代替objCmd.ExecuteReader()
。
ObjDataReader = objCmd.ExecuteReader
ObjDataReader.Read()
test = ObjDataReader(0)
MessageBox.Show(test)
或者...
test = objCmd.ExecuteScalar()
MessageBox.Show(test)
(您可能还需要其他人建议的演员或转换功能。)