如何获取前一天两小时的数据,

时间:2013-07-11 12:46:40

标签: sql sql-server sql-date-functions

我需要从前一天(sql server db)获取数据以转移到其他数据库(postgress),但由于数据很大,我想传输记录仅2小时,我的意思是我将运行此工作12次每天和每次将rec转移2小时,转移的记录不应重复。

所以基本上我需要一个查询,我可以安排运行12次,每次将记录转移两个小时。

2 个答案:

答案 0 :(得分:1)

declare @StartHour datetime, @EndHour datetime

set @EndHour = dateadd(hh,datediff(hh,0,GetDate()),0)
set @StartHour = dateadd(hh,-2,@EndHour)

--The above make the query work with start and end on-the-hour
--so it can be run any time within one hour to get the data
--for the two hours ending on the previous hour

select * from whatever where TheDate between @StartHour and @EndHour

答案 1 :(得分:0)

如果要为插入时间戳,那么运行一个select只需要拉出前两个小时的记录就应该很简单。

SELECT * FROM tblFoo WHERE tblFoo.insertionDate>DATEADD(hour,-2,GETDATE())

(如果你想要准确,那么不要使用GETDATE,而是保留在某个表或变量中运行的最后一个日期,每次添加两个小时,然后在运行查询后设置它)