2015-09-28 122 views
0

我担心的是以下查询的性能:选择MAX时间戳BIGINT从SQL表

SELECT 
    MAX(CAST((CONVERT(bigint, DBTimeStamp)) AS decimal)) AS DBTimeStamp 
FROM Category 
WHERE DepartmentID = 5 

有没有从表中获取最大/最新时间戳作为整数更快的方法?

+1

只需使用'SELECT MAX(CAST(DBTIMESTAMP AS BIGINT))... '... –

+0

NB,TIMESTAMP已从SQL 2005中弃用,应尽可能使用/参考ROWVERSION。查找最新(最大)值的快速方法是访问@@ DBTS函数,但这是每个数据库而不是表。 –

+0

我与2005年的数据库工作,我不能改变它的结构,所以我必须坚持这一点,但谢谢。我会记住更新的版本 – ali

回答

0

如果计算最大以前生产加工和铸造SQL可以使用索引,只需要转换和投一次:

SELECT 
CAST(CONVERT(bigint,MAX(DBTimeStamp)) AS decimal) AS DBTimeStamp 
FROM Category 
WHERE DepartmentID = 5