簡體   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