【问题标题】:Select MAX TIMESTAMP as BIGINT from SQL table从 SQL 表中选择 MAX TIMESTAMP 作为 BIGINT
【发布时间】:2015-12-25 11:34:52
【问题描述】:

我担心以下查询的性能:

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

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

【问题讨论】:

  • 只需使用SELECT MAX(CAST(DBTimestamp AS BIGINT)) .... ...
  • 注意,从 SQL 2005 开始不推荐使用 TIMESTAMP,您应该尽可能使用/参考 ROWVERSION。查找最新(最大值)值的快速方法是访问 @@DBTS 函数,但这是针对每个数据库而不是表。
  • 我正在使用 2005 数据库,我无法更改其结构,所以我必须坚持这一点,但谢谢。我会记住更新版本

标签: sql-server timestamp max bigint


【解决方案1】:

如果在转换和转换SQL之前计算最大值可以使用索引并且只需要转换和转换一次:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2019-01-31
    • 2023-02-02
    相关资源
    最近更新 更多