2014-01-22 93 views
0

使用Winforms,.Net 4.5。SQL Server Compact 4.0 DateTimePicker在日期之間選擇查詢

我有一個DataGridView和DataGridView的窗體,我從另一個窗體插入一些值,如客戶端名稱和日期,我掙扎了幾個小時弄清楚了,我正在使用SQL Server Compact 4.0,所以它只支持DateTime數據類型不同於SQL Server 2008左右,你可以無日期存儲日期,所以我需要做的是在日期查詢之間進行一些選擇。

但是在SQL Server Compact中,您只能存儲日期的整個值,如24/02/2014 12:00我只需要日期,而SQL Server Compact不會讓我這樣做。我嘗試使用DateTimePicker.Text向SQL Server Compact發送數據,但使用字符串不能在日期之間進行選擇,因爲它們不是日期,而是字符串。我可以從這種情況做些什麼,記住我只需要日期格式,我不需要時間,還記得SQL Server Compact不能只存儲日期。那麼是否有任何可能的方法來選擇字符串(dateTimePicker.Text)?

回答

0

在您的數據庫中存儲DateTime - 你真的沒有別的選擇。

如果您不需要時間 - 僅在執行選擇時使用日期時間的日期部分。

編輯:

我不知道你怎麼做你的選擇,但如果僅僅是文本查詢然後

WHERE子句是這樣的:

"DateColumn >= '" + sd.ToShortDateString() + "' AND DateColumn <= '" + ed.ToShortDateString() + "'"; 

哪裏sd是開始日期並且ed是結束日期,都是C#中的DateTime類型和DateColumn是您保存日期的列。 同樣的想法適用於插入。

SELECT是這樣的(返回12/12/2013):

select ltrim(str(DATEPART(month, DateColumn))) + ':' + ltrim(str(DATEPART(day, DateColumn))) + ':' + ltrim(str(DATEPART(year, DateColumn))) AS MyDate FROM TableName 

一般使用DATEPART的:

SELECT DATEPART(month, [DateColumn]) AS Month FROM TableName 

更多關於DATEPART是here

而且,看到this postthis post

+0

是的,它似乎我不,如何選擇ct僅在執行選擇時DateTime的日期部分,說實話首次使用DateTime數據類型 – user3144640

+0

更新了我的答案 - 請參閱編輯。 – user270576