2010-09-17 82 views
1

我需要找到2日期和時間之間的數據。關於日期在數據庫問題

我使用一個字段作爲日期,一個字段使用時間。

使用日期只有一個字段&時間更好嗎?

我看到它進來dd/mm/yyyy hh:mm:ss格式

可以包含日期和時間。

這個問題是acceess和SQL服務器

感謝的提前

回答

1

在幾乎所有情況下,日期和時間都需要在一起。 Access和SQL服務器都有日期/時間數據類型。在Access中,即使您將格式指定爲時間,也可以顯示日期。這是因爲所有的日期時間數據被存儲爲一個數字,並且時間是小數部分:

說我存儲數據:10時31分46秒,我可以鍵入在即時窗口示出日期時間的存儲線,像所以:

?CDec(DlookUp("TimeFormattedField", "Test")) 
0.438726851851852 

?Year(DlookUp("TimeFormattedField", "Test")) 
1899 

?Format(dlookup("F4", "Table2"),"dd/mm/yyyy") 
30/12/1899 

這是因爲零(0)是有效的日期。

獲取日期時間字段的不同部分非常容易,因此將日期時間存儲爲單個字段,因爲無論如何,這就是您將要獲得的內容。

0

取決於需求。如果您使用的是sql server 2008+,那麼如果您單獨存儲並不是問題,那麼寫入查詢同樣簡單。

+0

更容易編寫僅限日期的查詢。如果你不需要時間,爲什麼要存儲它? – JeffO 2010-09-17 16:47:48

1

我喜歡單獨存儲日期和時間。一般來說,我幾乎從不需要時間在我的應用程序。我將它們分開存儲的一種情況是在我的一些日誌程序中。這主要是因爲我只查詢日期,從不查詢日期+時間。

如果您需要在日期和時間上進行查詢,那麼單獨存儲它們確實存在問題,因爲您必須連接兩個字段進行比較,這意味着您的條件不會在兩個字段中使用任何索引。這對於數千條記錄來說可能不是問題,但對於任何以上的記錄來說,它可能很快成爲相當的性能拖累。如果您使用服務器後端,這也是一個主要問題,因爲所有的行都必須通過線路進行連接,而不是Access/Jet/ACE能夠將選擇交給服務器。