2015-10-03 156 views
1

如何使用datetimepicker在2日期之間選擇日期。VB.net,如何在2日期之間選擇日期

我使用

SELECT * 
FROM data BETWEEN '"& datetimepicker1.value &"' AND '"& datetimepicker2.value &"' 
+0

此代碼不按預期工作的方式?結果SQL語句是什麼,執行它時會發生什麼? – David

+4

您忘記了某些東西'...從date_column到...' –

+1

之間的數據將兩個日期轉換爲與數據庫中類似的格式,否則它將無法工作。按照格式,我的意思是秒或分鐘。 SQL無法比較兩個字符串之間的值。它必須是一個整數或雙或數值 –

回答

0

這是非常不好的做法來連接SQL中的查詢參數。使用特殊的參數語法。

回到你的問題: 查詢應該是這樣的:

SELECT * from data WHERE someField BETWEEN @Low AND @High 

和代碼:

command.Parameters.Add("@Low", SqlDbType.Int); //set correct type 
command.Parameters["@Low"].Value = low; 

command.Parameters.Add("@High", SqlDbType.Int);//set correct type 
command.Parameters["@High"].Value = high; 
0

補充上述答案:

1)您必須在該日期相同的SQL格式,包括秒(或不)。該字符串必須相同。您也可以嘗試00:00:00到starttime和23:59:59到結束時間。

2)您必須利用從字符串到日期的轉換,因爲您的字段是SQL中的DATE。

嘗試:

SELECT * from data WHERE someField BETWEEN Convert(datetime, "01/01/1980 00:00:00", 120) AND Convert(datetime, "03/10/2015 23:59:59", 120) 

看上面的 '120':it's的SQL格式的日期/時間。檢查可用格式以在SQL版本中轉換日期和時間。

+0

因此,如果我使用datetimepicker,就像 - >轉換(日期時間,「datetimepicker1.text」,120)的語法?? –

+0

編號使用「Convert(datetime,datetimepicker1.value,120)」來獲取控件的值(請參閱「否」),但請記住:如果您的SQL字段包含時間,則還需要在過程中指定時間。你可以使用OR datetimepicker.CustomFormat來設置類似「dd/MM/yyyy hh:mm:ss」的內容,甚至可以添加像datetimepicker.text和「00:00:00」這樣的時間。 –

相關問題