我们希望将数据库中的日期与当前日期进行比较。
这是我到目前为止所尝试的内容:
'Obtain current date
Dim curdate As String = Now.ToString("yyyy")
'Now compare curdate with date from db called eventdate. Event date is of dateTime datatype.
If drv("eventdate").ToString = "" And Year(drv("eventdate").ToString) = curdate Then
'Then do some processing
End if
当我运行此代码时,出现以下错误:
从字符串“”到“日期”类型的转换无效。
请帮忙!
非常感谢专家。
答案 0 :(得分:3)
If Today.CompareTo(CDate(drv("eventdate")).Date) = 0 Then
'Do something
End If
我在这里假设你只关心这一天,而不关心时间。否则,在给定的一天内匹配的几率大约是250万分之一。
基于评论:
If Today.Year.CompareTo(CDate(drv("eventdate")).Year) = 0 Then
'Do something
End If
或
If Today.Year = CDate(drv("eventdate")).Year Then
'Do something
End if
还有一件事:听起来这确实是应该由您的数据库完成。使其成为返回结果的查询的一部分。这将更多更快,这是那种检查所属的地方。您只需要在where子句中添加一个检查,如下所示:
Year(eventdate) = Year(current_timestamp)
答案 1 :(得分:1)
如果drv
有DataReader实例,请验证DBNull
。
IF Not drv.IsDBNull(column_index_of_eventdate) Then
...
If drv.GetDateTime(column_index).Year=Date.Now.Year Then
...
End If
End If
答案 2 :(得分:0)
我相信你有一个空值或空值,你的比较也是错误的,试试:
If drv("eventdate").ToString <> "" Andalso Year(drv("eventdate").ToString) = curdate Then
'Then do some processing
End if