2012-03-14 91 views
0

我有一些用戶控件是由wpf中的兩個日期選擇器驅動的。一個選擇器控制日期範圍的開始,另一個控制日期範圍的結束。sql將日期傳遞給日期時間

我有datepicker.selecteddate屬性給我的時間和日期的問題,然後我的SQL結果並不是所有的,因爲傳入的時間值過濾了我的很多結果。我最終發現,如果我將時間格式化爲午夜時間,那麼我的結果都在那裏,但每次我在日期選擇器中選擇一個新選擇時,都會重置格式化的時間。

經過一些測試後,我發現我只能傳遞datepicker文本屬性的值作爲參數。此屬性的值爲字符串類型,並設置爲當前選定日期的日期值(例如:2012年3月14日5:00:32是選定日期,然後'2012年3月14日'是文本值)。

到目前爲止,令人驚訝的是,這似乎返回了我想要的所有結果。

我想知道爲什麼這個實際工作(它是B/C的'Mdy'字面格式是否支持和默認?),如果有什麼負面的缺點做我在做什麼?我知道很多次,只是因爲某些作品並不意味着你應該在生產中使用它。我與其他人共享表格,或者我只是將日期時間字段和參數轉換爲日期並完成。

我希望我的問題有道理。有時候他們沒有。如果有問題留下評論,我會報出來。

+1

什麼是RDBMS?如果SQL Server參數的實際數據類型是什麼? – 2012-03-14 20:04:31

+0

您還沒有告訴我們您使用的是什麼軟件,包括RDBMS。 – Marc 2012-03-14 20:04:52

+0

Martin Smith:將日期的字符串表示形式傳遞給存儲區的日期時間參數。該sproc調用日期時間格式的字段不在其他表中。 – TWood 2012-03-14 20:10:03

回答

0

就負面的缺點而言,我看不到任何東西 - 這是我們在許多應用程序/數據庫中處理它的方式。但是,我通常處理它的方式是,如果添加的記錄不需要時間(即BusinessDate,LoadDate),那麼我只添加記錄並且沒有時間 - 所以該值始終爲格式3/14/2012 12:00:00 AM,其格式爲我認爲使查詢更容易,因爲你不必處理時間

然後在我的用戶界面(winforms)執行一個datetimepicker日期搜索時,我使用datetimepicker.Value.Date它給日期以類似的格式(3/14/2012 12:00:00 AM)。

如果您需要日期時間的表格中有一個字段,然後使用它,您可以通過格式化表格中的日期或使用date > yourdate AND date <= yourdate來搜索日期,其中包括您正在搜索的日期。

+0

你的話有道理。實際上,我將視圖的格式化時間值視爲用於顯示的varchar,然後是未修改的「入口時間」,用於使查詢更容易。我想我可能會回去在那裏扔一個日期場。它看起來像我發現你所指的datepicker屬性。在wpf中,它與WinForms語法略有不同DatePicker.SelectedDate.Value.Date – TWood 2012-03-14 20:42:37

+0

很高興你找到了屬性,很高興它自動給出日期值而不需要任何格式。 – Taryn 2012-03-14 20:47:30

+0

我也是。代碼覺得它變得越來越笨拙,這解決了這個問題,並教我一些東西。感謝您抽出時間來真正解決我的問題,而不僅僅是抓取代表點和保釋。祝你有個好的一天。 – TWood 2012-03-14 21:11:43

相關問題