启蒙需要清除对datetime vs smalldatetime的疑虑

时间:2013-01-04 02:07:55

标签: sql sql-server sql-server-2005 date datetime-format

我已阅读此内容但仍无法理解。希望有人在这里向我解释。我有一个查询,只为我的列分配一个当前日期值。但是,如果我的查询如下,我想知道是否应该将新列创建为DATETIMESMALLDATETIME

  Insert into table(col A)
  Select DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) As ColA  
  from table B  

我想我的select语句已经没有时间给我日期值了。我怀疑在我的数据库表中创建Col A。我使用的是Sql 2005.

更新:
所以我的qns是如何在我的数据库表中创建我的列A?我需要为它添加约束吗?首选哪种数据类型?

1 个答案:

答案 0 :(得分:3)

SQL Server 2005不支持date数据类型。这将是您真正想要的数据类型。

smalldatetimedatetime都存储带有时间组件的日期。这些在SQL Server documentation中有解释。 Smalldatetime以四个字节存储,datetime以8个字节存储。

出于您的目的,它们可能同样有用。差异是可以表示的范围和准确性。在这两种情况下,准确度远远低于一天,因此可以用于存储大多数用途的日期。