将日期存储为MS SQL Server中的int是否有任何性能优势

时间:2009-02-23 17:49:54

标签: sql-server sql-server-2005

在空间或查询速度和字段比较方面?

4 个答案:

答案 0 :(得分:5)

Datetime列已作为8字节二进制值存储在SQL Server中 - 日期部分为4个字节,时间部分为4个字节。您看到的任何其他表示只是为了使它们更具人性化。

如果你知道你不需要全方位的值(例如你不关心时间部分而且没有使用2008,例如),你可以用整数做得更好一点。但我真的怀疑你会发现除了最大和最繁忙的桌子之外的所有表现都有差异。

与往常一样,您需要进行分析才能确定。

答案 1 :(得分:2)

使用ints你还需要有代码来确保它确实是一个日期而不是插入20090230 如果您使用的是SQl服务器2008,则可以使用仅使用3个字节的DATE数据类型

答案 2 :(得分:0)

MS SQL 2008可以分别存储并具有列类型的日期和时间。为什么要使用int。

答案 3 :(得分:0)

将日期存储为整数将是一件坏事,因为您总是必须将数据重新创建为日期才能进行日期数学或日期比较。这会对性能产生负面影响。此外,将日期存储为整数将需要编写触发器以确保不会向该字段添加非日期。如果您不这样做,那么在您的字段中存储无效日期(例如2302009)时,您将遇到日期完整性问题。