Sql 在查询中,将日期转换为数字是否更有效?

Sql 在查询中,将日期转换为数字是否更有效?,sql,date,indexing,Sql,Date,Indexing,我想提高基于日期或日期时间查询子集的性能 我想知道如果我在日期类型列或日期时间类型列旁边创建第二列,将日期存储为数字,查询的性能是否会更好 一个int(4字节长)就足够了,格式应该是YYYYMMDD。我假设索引数字更有效,但不确定,因为DB技术可能会优化索引类型 据我所知,date/datetime类型存储为与参考日期相反的数字。因此,建议的替代方案将避免映射到参考日期的开销。使用内置的日期、日期时间或时间戳,或者DMB支持的任何东西。它几乎肯定会在内部使用一个整数或一系列整数(参考某个历元),

我想提高基于日期或日期时间查询子集的性能

我想知道如果我在日期类型列或日期时间类型列旁边创建第二列,将日期存储为数字,查询的性能是否会更好

一个int(4字节长)就足够了,格式应该是
YYYYMMDD
。我假设索引数字更有效,但不确定,因为DB技术可能会优化索引类型


据我所知,
date/datetime类型
存储为与参考日期相反的数字。因此,建议的替代方案将避免映射到参考日期的开销。

使用内置的日期、日期时间或时间戳,或者DMB支持的任何东西。它几乎肯定会在内部使用一个整数或一系列整数(参考某个历元),但基本上您不需要也不应该关心。与设计中的问题可能导致的问题相比,任何性能差异都是微小的,如果从某个日期开始计算字符串,则可能会使事情变得更糟或引入错误


如果您担心性能,请特别关注适当的索引和必要时使用群集。

查询不需要
映射到参考日期
它仍然只是一个数字查询。顺便说一句-请只添加一个RDBMS,因为它们都不同。(这就是Gordon将它们全部删除的原因)。(1)使用内置类型。索引一种类型相对于另一种类型的任何细微优势在查询中都不太明显。(2) 关于性能的问题应该有一个数据库标签,因为不同数据库的功能不同。