从日志表中获取昨天的记录

Die*_*ego 0 sql performance time sql-server-2005 date

场景:

具有时间戳字段的大量记录(2百万)的日志表.除了ID作为主键之外没有索引,并且索引(或任何其他持久对象)的创建是不可能的

我想从昨天开始选择所有记录.

我知道有几种方法可以做到这一点,我只想对"最好"的方式发表看法,而且最好的意思是最快.

这里的诀窍是时间戳的"时间",因为如果现在是上午11点,我会做类似的事情:

where modifiedDate between dateadd(dd,-1,getdate()) and getdate()
Run Code Online (Sandbox Code Playgroud)

我只从昨天11点获得记录,并将从今天获得数据

它的sql 2005所以没有"Date"数据类型

Tar*_*ryn 5

SELECT *
FROM  myTable
WHERE modifiedDate >= dateadd(day,datediff(day,0,GETDATE()),-1)
    AND modifiedDate < dateadd(day,datediff(day,0,GETDATE()),0)
Run Code Online (Sandbox Code Playgroud)

SQL小提琴演示