繁体   English   中英

我该如何比较两个日期?

[英]how do I compare two dates?

我们想比较db中的日期和当前日期。

这是我到目前为止所尝试的:

'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

当我运行此代码时,我收到以下错误:

从字符串“”到“日期”类型的转换无效。

请帮忙!

非常感谢专家。

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)

如果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

我相信你有一个空值或空值,你的比较也是错误的,试试:

If drv("eventdate").ToString <> "" Andalso Year(drv("eventdate").ToString) = curdate Then

 'Then do some processing
End if

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM