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"数据类型
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小提琴演示