我需要从前一天(sql server db)获取数据以转移到其他数据库(postgress),但由于数据很大,我想传输记录仅2小时,我的意思是我将运行此工作12次每天和每次将rec转移2小时,转移的记录不应重复。
所以基本上我需要一个查询,我可以安排运行12次,每次将记录转移两个小时。
答案 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,而是保留在某个表或变量中运行的最后一个日期,每次添加两个小时,然后在运行查询后设置它)