vb.net SQL检查日期

时间:2011-03-28 14:48:56

标签: sql vb.net date

基本上,我在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

提前致谢。

编辑:当我知道在我尝试的那天之前和之后我的桌子上肯定有日期时,我一直收到没有数据存在的错误。

4 个答案:

答案 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)

您需要Convert命令。

例如,要转换ISO 8601标准的字符串

WHERE Date > CONVERT(datetime, '2006-04-25T15:50:59.997', 126)

答案 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)

(您可能还需要其他人建议的演员或转换功能。)