关于数据库问题的日期

时间:2010-09-17 06:42:55

标签: sql-server ms-access

我需要在2个日期和时间之间找到数据。

我使用一个字段表示日期,使用一个字段表示时间。

最好只使用一个字段来表示日期和时间。时间?

我发现它以dd/mm/yyyy hh:mm:ss格式出现

可以包含日期和时间。

这个问题适用于acceess和sql-server

提前谢谢

3 个答案:

答案 0 :(得分:1)

几乎在所有情况下,都需要日期和时间。 Access和SQL Server都具有日期/时间数据类型。在Access中,即使您将格式指定为时间,也可以显示日期。这是因为所有日期时间数据都存储为数字,时间是小数部分:

假设我存储数据:10:3​​1:46,我可以在即时窗口中输入说明日期时间存储的行,如下所示:

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

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

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

这是因为零(0)是有效日期。

获取日期时间字段的不同部分非常容易,因此将日期时间存储为单个字段,因为无论如何这都是您要获得的。

答案 1 :(得分:1)

我喜欢分开存储日期和时间。一般来说,我的应用程序几乎不需要时间。我将它们分开存储的一种情况是在我的一些日志记录例程中。这主要是因为我只查询日期而不是日期+时间。

如果您需要同时查询日期和时间,那么单独存储它们确实存在问题,因为您必须连接两个字段进行比较,这意味着您的条件不会使用这两个字段上的任何索引。对于几千条记录来说,这可能不是一个问题,但对于任何高于此的记录,它很快就会成为一种性能拖累。如果您使用的是服务器后端,这也是一个主要问题,因为所有行都必须通过线路连接,而不是Access / Jet / ACE能够将选择权移交给服务器。

答案 2 :(得分:0)

取决于要求。如果您使用的是sql server 2008+,那么如果您单独存储不是问题,那么编写查询也很容易;