2012-03-01 46 views
0

我有2個SQL表格(A & B),其日期格式爲DD/MM/YYYY和時間,例如01/03/2012 00:00: 00。在我的VB.net應用程序中,我正在計算表A中的日期數小於表B中的日期數。我從數據庫中獲取日期沒有問題。我已經提取了表B中的日期並將其存儲在程序中。我只是不確定如何比較SQL查詢中的日期。在SQL和VB.NET中檢查日期是否小於另一個

總之什麼,我試圖做的是:

"select count(records) as totalRecords from table A where date < " & dateBvariable & "" 

任何幫助表示讚賞

+0

你有什麼是好的 - *假設*是'dateBvariable'其實,日期。儘管你可能需要單引號。儘管您使用的是「小於」符號,但將日期稱爲「早於」會更清楚。 – Widor 2012-03-01 14:37:29

回答

1

嘗試

"select * from lk.media_months where begin_on < cast('" & dateVarialbe & "' as DATETIME)" 
+0

必須稍微改變這一點,但指出我在正確的方向感謝。最後使用這個:CONVERT(DATETIME,'「&Format(date(i),」yyyy-MM-dd「)&」00:00:00',102)) – 2012-03-20 10:54:32

1

有機會的話,如果你傳遞的日期作爲字符串'引號它會工作:

where date < '" & dateBvariable & "'" 

或者它格式化爲ODBC標準:

where date < '" & dateBvariable.ToString("yyyy-MM-dd HH:mm:ss") & "'" 

更妙的是傳遞一個參數:

where date < @par1 

和參數添加到SqlCommand

command.AddWithValue "@par1", dateBvariable 
+0

嘗試了所有這些,但仍然沒有運氣。現在嘗試在SQL中進行轉換,看看我是否有幸運。感謝您的建議 – 2012-03-02 10:27:52

1

嘗試使用參數來設定日期。例如: -

Dim sqlCmd As New SqlCommand("select count(records) as totalRecords from tableA where dateField < @DateParam") 

sqlCmd.Parameters.AddWithValue("@DateParam", DateTime.Today) 
相關問題